workerman驱动YII2框架
workerman
workerman是一款常驻进程的php框架,workerman拥有极高的性能 workerman运行过程中,单个进程生命周期内只要PHP文件被载入编译过一次,便会常驻内存,不会再去从磁盘读取或者再去编译。 workerman省去了重复的请求初始化、创建执行环境、词法解析、语法解析、编译生成opcode以及请求关闭等诸多耗时的步骤。 实际上workerman运行起来后便几乎没有磁盘IO及PHP文件编译开销,剩下的只是简单的计算过程,这使得workerman运行飞快。 workerman中多个请求是可以共享数据或者资源的,当前请求产生的全局变量或者类的静态成员在下一次请求中仍然有效。 这对于减少开销,提高运行效率非常有用。例如业务只要初始化一次数据库连接,那么全局都可以共享这个连接,这实现了真正意义上的数据库长连接。 从而不必每次用户请求都去创建新的连接,避免了连接时三次握手、连接后权限验证以及断开连接时四次挥手等耗时的交互过程。不仅数据库,像redis、 memcache等同样有效。少了这些开销和网络交互,使得workerman运行更快。
php-fpm下的mvc框架
php-fpm下有很多优秀的mvc框架,例如yii,thinkphp等,他们提供了丰富的功能,极大地提高了开发效率,通常情况下大家说的php开发更多的是在php-fpm环境下的开发,但php-fpm下php效率较低,资源基本上每次都需要重新初始化。 workerman下常规的php-fpm框架根本无法直接运行。那么我们如何将两者的优点相结合呢
yii2&workerman
yii2是一款优秀的php mvc框架,自带了 丰富的功能,包括 MVC,DAO/ActiveRecord,I18N/L10N,缓存,身份验证和基于角色的访问控制,脚手架,测试等,可显著缩短开发时间。 很多企业现有的业务构建于yii2之上。两者都是好东西,如果结合起来,这样Yii2出现瓶颈的时候有些业务就可以平滑地迁移到Workerman
yii2控制台模式
Yii框架完美支持控制台应用,其在 Yii 中的结构与 Yii 的 web 应用非常相似。一个控制台应用,包括一个或多个 [[yii\console\Controller]](通常在控制台环境中被称作“命令”)。 如 Web Controller 一样,每一个 [[yii\console\Controller]] 也可以包含有一个或多少的动作。 控制台入口脚本一般被称为 yii,它通常被放置于应用的根目录中 启动命令:
./yii controller/action
如果我们能把w