最近想在TP的项目中使用Workerman,经查看一些资料发现我现在使用的方式和大家不太一样,所以发出来大家可以指点一二
突然发现无法发链接,把内容复制过来一下好了
原理
TP与Workerman集成的难处在于CLI模式下TP默认第一个参数为入口文件,第二个参数为控制器路径,之后为参数
Workerman默认第一个参数为文件,第二个参数在WIN下无用,Linux下为start等指令
那么问题来了,在TP中使用Workerman一般都是在控制器层,而不是新增入口文件的方式
这样的话第二个参数的用途上两个框架会产生冲突,一般的解决方式有改动Workerman源码,直接在新入口文件中使用Workerman等但是通过观察两个项目的源码发现,Workerman是靠$argv进行参数判断,而TP则使用$_SERVER['argv']进行控制器映射
这样的话在可控的范围内可以通过讨巧的方式干涉$argv参数的形式进行集成'win':'linux';
4.根据当前环境引入Workerman的自动加载文件:Vendor('Workerman_for_'.