TP-SWOOLE目前,TP5.1已经正式提供了think-swoole2.0,之前的集成水平优雅多了,但是5.0的集成方式确实有点鸡肋。于是看了2.0,开发了5.0的扩展包。可以使用composer下载composerrequirexaviertony/xavier-swoole。开发前需要熟悉TP5.0的生命周期,否则无从下手。由于TP主要运行在Apache或者NGINX下,每次运行结束都会释放,而swoole是常驻内存。TP5的很多类都是单例实现的,所以掉坑在所难免。大坑主要是request。请求被实例化。如果不删除请求强制,以后每次都会使用这个实例,导致无法正常访问页面,因为每次请求到达后都需要删除请求实例。publicstaticfunctiondeletethis(){if(!is_null(self::$instance)){self::$instance=null;}}第三方包的配置文件必须在application/extra下,文件名为swoole.php'0.0.0.0',//监听地址'port'=>9501,//监听端口'mode'=>'',//运行模式默认为SWOOLE_PROCESS'sock_type'=>'',//sock类型默认为SWOOLE_SOCK_TCP'app_path'=>getcwd()。'/application',//如果应用程序地址开启'daemonize'=>true则必须设置(使用绝对路径)'file_monitor'=>false,//是否开启PHP文件变化监听(调试模式下)automaticallyopen)'file_monitor_interval'=>2,//文件变化监控检测时间间隔(秒)'file_monitor_path'=>[],//文件监控目录默认监控application和config目录//可以支持的所有配置参数swoole'pid_file'=>getcwd()。'/运行时/swoole.pid','log_file'=>getcwd()。'/runtime/swoole.log','task_worker_num'=>20,//'document_root'=>getcwd().'public',//'enable_static_handler'=>true,'daemonize'=>1,//guard'worker_num'=>8,//工作进程数'max_request'=>10000,];启动命令phpthinkswoolestartdaemonstartphpthinkswoolestart-d停止服务phpthinkswoolestop
