以下是調(diào)試配置成功后的代碼,為方便大家學(xué)習(xí),節(jié)省大家研究時(shí)間,在此共享。
1.開啟httpServer請(qǐng)求
??可以在thinkphp的目錄下創(chuàng)建一個(gè)server目錄,里面創(chuàng)建一個(gè)http_server.php
2.在http_server.php中做幾件事
1.配置靜態(tài)資源文件
//配置靜態(tài)文件 http://www.live-swoole.com:8811/ $http->set( [ 'enable_static_handler' =>true, //true則,底層收到Http請(qǐng)求會(huì)先判斷document_root路徑下是否存在此文件,如果存在會(huì)直接發(fā)送文件內(nèi)容給客戶端,不再觸發(fā)onRequest回調(diào) 'document_root' => '/var/www/html/thinkphp5/public/static' , //默認(rèn)靜態(tài)資源文件存放目錄 'worker_num' => 5, ] );
2.swoole進(jìn)程開啟時(shí)加載thinkphp框架
$http->on('WorkerStart',function(swoole_server $serv,$worker_id){ // 定義應(yīng)用目錄 define('APP_PATH', __DIR__ . '/../application/'); // 加載框架里面的文件 require __DIR__ . '/../thinkphp/base.php'; });
3、因?yàn)閟woole接收參數(shù)和thinkphp中接收不一樣,所以需要轉(zhuǎn)換為thinkphp可識(shí)別,轉(zhuǎn)換POST參數(shù)示例如下:
$_POST = [];解決swoole對(duì)全局變量不會(huì)自動(dòng)注銷 if(isset($request->post)){ foreach ($request->post as $k => $v) { $_POST[$k] = $v; } }
4.解決每次路由訪問顯示第一次訪問時(shí)的路徑信息
找到thinkphp/library/think/Request.php文件
function path?中的if (is_null($this->path)) {}注釋或刪除 ?里面的內(nèi)容不動(dòng)
function pathinfo中的if (is_null($this->pathinfo)) {}注釋或刪除 ?里面的內(nèi)容不動(dòng)
結(jié)束!有疑問的歡迎在線留言交流
分享tp,laravel,swoole等教程,需要加微信:PHPopen888,還可加入微信群,各種大牛都是3-8年P(guān)H...