搜尋

首頁  >  問答  >  主體

swoole完美適配thinkphp5,有需要的可參考學習下進階中高級

以下是調試配置成功後的程式碼,為方便大家學習,節省大家研究時間,在此共享。

1.開啟httpServer請求

  可以在thinkphp的目錄下建立一個server目錄,裡面建立一個http_server.php

2.在http_server.php中做幾件事

1.設定靜態資源檔

//配置静态文件  http://www.live-swoole.com:8811/    $http->set(        [            'enable_static_handler'    =>true, //true则,底层收到Http请求会先判断document_root路径下是否存在此文件,如果存在会直接发送文件内容给客户端,不再触发onRequest回调            'document_root'    => '/var/www/html/thinkphp5/public/static' ,  //默认静态资源文件存放目录            'worker_num' => 5,        ]    );

2.swoole行程開啟時載入thinkphp框架

$http->on('WorkerStart',function(swoole_server $serv,$worker_id){        // 定义应用目录        define('APP_PATH', __DIR__ . '/../application/');        // 加载框架里面的文件        require __DIR__ . '/../thinkphp/base.php';    });


3、因為swoole接收參數和thinkphp中接收不一樣,所以需要轉換為thinkphp可識別,轉換POST參數範例如下:

$_POST = [];解决swoole对全局变量不会自动注销
if(isset($request->post)){            foreach ($request->post as $k => $v) {                $_POST[$k] = $v;            }        }

4.解決每次路由存取顯示第一次存取時的路徑資訊

找到thinkphp/library/think/Request.php檔案
function path 中的if (is_null($this->path)) {}註解或刪除 裡面的內容不動

function pathinfo中的if (is_null($this->pathinfo)) {}註解或刪除 裡面的內容不動

結束!有疑問的歡迎線上留言交流

momomomo2182 天前1359

全部回覆(1)我來回復

  • momo

    momo2018-12-10 13:47:05

    實在是666

    回覆
    0
  • 取消回覆