下面由thinkphp框架教程欄目給大家介紹讓tp5.0在swoole上飛起來的方法,希望對需要的朋友有所幫助!
TP-swoole
目前,TP5.1官方已經(jīng)提供了think-swoole2.0,集成程度以前優(yōu)雅很多,不過5.0的集成方式確實(shí)有些雞肋。所以看了下2.0,為5.0開發(fā)了一個擴(kuò)展包,可以采用composer下載
composer?require?xaviertony/xavier-swoole
開發(fā)之前,需要先熟悉TP5.0的生命周期,不然就無從下手了。
由于TP主要在apache或者nginx下運(yùn)行,每次運(yùn)行結(jié)束都會進(jìn)行釋放,而swoole則是常住內(nèi)存,TP5很多類都由單例實(shí)現(xiàn),所以難免會入坑,其中大坑主要是request,由于啟動后請求被實(shí)例化,如果不刪除請求勢力,以后每次都是采用這個實(shí)例,造成無法正常訪問頁面,因?yàn)槊看握埱筮_(dá)到后需要先將請求實(shí)例刪除
public?static?function?deletethis() ????{ ????????if?(!is_null(self::$instance))?{ ????????????self::$instance=null; ????????} ????}
第三方包的配置文件必須在application/extra下,文件名為swoole.php
<?php return [ 'host' =>?'0.0.0.0',?//?監(jiān)聽地址 ????'port'??????????????????=>?9501,?//?監(jiān)聽端口 ????'mode'??????????????????=>?'',?//?運(yùn)行模式?默認(rèn)為SWOOLE_PROCESS ????'sock_type'?????????????=>?'',?//?sock?type?默認(rèn)為SWOOLE_SOCK_TCP ????'app_path'??????????????=>?getcwd()?.?'/application',?//?應(yīng)用地址?如果開啟了?'daemonize'=>true?必須設(shè)置(使用絕對路徑) ????'file_monitor'??????????=>?false,?//?是否開啟PHP文件更改監(jiān)控(調(diào)試模式下自動開啟) ????'file_monitor_interval'?=>?2,?//?文件變化監(jiān)控檢測時間間隔(秒) ????'file_monitor_path'?????=>?[],?//?文件監(jiān)控目錄?默認(rèn)監(jiān)控application和config目錄 ????//?可以支持swoole的所有配置參數(shù) ????'pid_file'??????????????=>?getcwd()??.?'/runtime/swoole.pid', ????'log_file'??????????????=>?getcwd()??.?'/runtime/swoole.log', ????'task_worker_num'???????=>?20, ????//'document_root'?????????=>?getcwd()?.?'public', ????//'enable_static_handler'?=>?true, ????'daemonize'????????????????=>?1,//守護(hù) ????'worker_num'?=>?8,????//worker?process?num ????'max_request'?=>?10000, ];
啟動命令
php?think?swoole?start
守護(hù)啟動
php?think?swoole?start?-d
停止服務(wù)
php?think?swoole?stop
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END