這個辦法可以讓TP5.0在SWOOLE上飛起來!

下面由thinkphp框架教程欄目給大家介紹讓tp5.0在swoole上飛起來的方法,希望對需要的朋友有所幫助!

這個辦法可以讓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 [     &#39;host&#39;                  =>?'0.0.0.0',?//?監(jiān)聽地址 ????'port'??????????????????=&gt;?9501,?//?監(jiān)聽端口 ????'mode'??????????????????=&gt;?'',?//?運(yùn)行模式?默認(rèn)為SWOOLE_PROCESS ????'sock_type'?????????????=&gt;?'',?//?sock?type?默認(rèn)為SWOOLE_SOCK_TCP ????'app_path'??????????????=&gt;?getcwd()?.?'/application',?//?應(yīng)用地址?如果開啟了?'daemonize'=&gt;true?必須設(shè)置(使用絕對路徑) ????'file_monitor'??????????=&gt;?false,?//?是否開啟PHP文件更改監(jiān)控(調(diào)試模式下自動開啟) ????'file_monitor_interval'?=&gt;?2,?//?文件變化監(jiān)控檢測時間間隔(秒) ????'file_monitor_path'?????=&gt;?[],?//?文件監(jiān)控目錄?默認(rèn)監(jiān)控application和config目錄 ????//?可以支持swoole的所有配置參數(shù) ????'pid_file'??????????????=&gt;?getcwd()??.?'/runtime/swoole.pid', ????'log_file'??????????????=&gt;?getcwd()??.?'/runtime/swoole.log', ????'task_worker_num'???????=&gt;?20, ????//'document_root'?????????=&gt;?getcwd()?.?'public', ????//'enable_static_handler'?=&gt;?true, ????'daemonize'????????????????=&gt;?1,//守護(hù) ????'worker_num'?=&gt;?8,????//worker?process?num ????'max_request'?=&gt;?10000, ];

啟動命令

php?think?swoole?start

守護(hù)啟動

php?think?swoole?start?-d

停止服務(wù)

php?think?swoole?stop

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊11 分享