结合传统框架
可以利用swoole的Http_server可以很轻松的实现一个异步多进程非阻塞的高性能服务器出来,但是加载传统的框架还是有很多的坑,我们掌握一些注意事项,也可以自行去解决.
注意问题
1、入口文件
框架是通过入口文件,做自动加载然后响应应用的,文件的加载,以及初始化操作都应该在worker当中去执行,每个工作进程加载一个框架实例,而不是每个请求有一个实例。
2、内容响应位置
响应内容是发生在客户端请求时,所以真正执行框架是在request事件当中。
3、加载http参数
默认swoole会将http的request参数做了封装,所以我们需要处理成原本的参数形式,让框架自己去组装。
4、常驻内存导致参数处理问题
Swoole是常驻内存的,所以对于对象的属性,不要去判断是否存在再去加载,否则会得到上次的结果,(pathinfo,get,post)
5、cli模式
有些框架当中会存在判断当前是否是cli模式,启动swoole就是cli启动所以需要处理下
6、数据库跟redis共用连接问题
https://wiki.swoole.com/wiki/page/325.html 看这里
在框架当中可以采取一个比较简单粗暴的方法处理,使用$GLOBALS处理,这样在同一个进程,就会有某个mysql或者redis的实例
资料
think-swoole : ThinkPHP 5.1 Swoole 扩展
Last updated