将Yii2和Workerman结合

来源:互联网 发布:DRGS网络上报 编辑:程序博客网 时间:2024/04/28 00:32

两者都是好东西,我就想着能不能结合起来,这样Yii2出现瓶颈的时候有些业务就可以平滑地迁移到Workerman中。


其实挺简单的,就是把Yii2应用的index.php中的内容放到Worker的代码前面,只是要把run改为init:


<?phprequire(__DIR__ . '/../vendor/autoload.php');require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');require(__DIR__ . '/../common/config/bootstrap.php');require(__DIR__ . '/config/bootstrap.php');$config = yii\helpers\ArrayHelper::merge(    require(__DIR__ . '/../common/config/main.php'),    require(__DIR__ . '/../common/config/main-local.php'),    require(__DIR__ . '/config/main.php'),    require(__DIR__ . '/config/main-local.php'));(new yii\web\Application($config))->init(); //改为init

同样可以延用Yii2的组件方式和目录结构,注意几点,

1. debug组件不用加载了,加载也没有意思,因为没有request,所以会报错

2. 最好也定义一个index.php作为整个workerman的入口,这样可以在main.php加载之前初始化一些YII_DEBUG这样的全局变量。

0 0
原创粉丝点击