Download the PHP package deepziyu/yii2-swoole without Composer
On this page you can find all versions of the php package deepziyu/yii2-swoole. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download deepziyu/yii2-swoole
More information about deepziyu/yii2-swoole
Files in deepziyu/yii2-swoole
Package yii2-swoole
Short Description full solutions making yii2-framework run on swoole with coroutine
License BSD-3-Clause
Informations about the package yii2-swoole
yii2-swoole
为赋予 Yii2 框架协程异步能力而生。
后期开发会依赖 Swoft 框架 去实现功能,相信 Swoft 会是下一代优秀的框架。
此插件基于 swoole (v2.0) 底层实现的协程,改造 Yii2 的核心代码,使开发者无感知,以及在不改动业务代码的情况下,用上 swoole 的异步IO能力。
特性
-
协程 MySQL 客户端、连接池,支持主从、事务。
-
协程 Redis 客户端、连接池、缓存 (目前未打算支持事务)
-
协程 HttpClient , 依赖于 Swoft 实现
-
swoole_table 缓存组件
-
异步文件日志组件
- 业务代码和 swoole 主进程分离
安装
环境要求
- hiredis
- composer
- PHP7.X
- Swoole2.1 且开启协程和异步 Redis
swoole install
composer install
-
在项目中的
composer.json
文件中添加依赖: - 执行
$ php composer.phar update
或$ composer update
进行安装。
配置
你可以参考 这个示例项目
新建一个启动文件即可。
启动文件清晰的展现出本插件的工作、流程原理。动手写这个文件有助于你更加理解本插件。
swoole.php 示例如下:
启动
Usage HttpClient
HTTP 客户端的使用请参考 Swotf 文档。
TODO
- MysqlPool 目前不支持事务 (transaction)。 ( 已实现 )
- MysqlPool、RedisPool 连接池用满了,目前是用 sleep() 进行排队等待,超过等待次数后,报异常。
- MysqlPool 目前不支持主从。 ( 已实现 )
已知Bug
-
迭代器将导致协程挂起。
BUG代码:
已解决Bug
-
new ActiveRecord([]); 中会触发 __set() 魔术方法中调用协程Client,导致两个问题:
1、 首次实例化会导致协程挂起。
2、 如果 SQL 报错直接导致 work 进程终止。
BUG代码:
链接
Chat && Help
Swoft 框架QQ交流群:548173319