<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] ## 創建http.php 在導入 tp框架的時候有兩種方式 1. 放在 `WorkStart` 中, 優點:只需要載入一次框架,速度快 缺點:由于 tp5duiswoole 支持不好,所以需要更改一些 tp5 的源碼 2. 把 `define` 和 `require`直接在放在`request`的請求中 ``` define('APP_PATH', __DIR__ . '/../application/'); //// 加載基礎文件 require __DIR__ . '/../thinkphp/base.php'; ``` 優點:不需要更改 tp5 的源碼,但是在 task任務中無法通過命名空間加載類 缺點:速度稍微慢與 `WorkStart` 在根目錄下創建 `server/http.php` ``` $http = new swoole_http_server('0.0.0.0', 8811); $http->set([ 'document_root' => '/Users/idcpj/Web/swoole/thinkphp/public/static', //靜態文件存放路徑 'enable_static_handler' => true, ]); $http->on('WorkerStart', function (swoole_server $server){ define('APP_PATH', __DIR__ . '/../application/'); //// 加載基礎文件 require __DIR__ . '/../thinkphp/base.php'; }); //在 request 中執行代碼 $http->on('request', function ($request, $response) use ($http){ //把值賦值給$_SERVER,$_GET,$_POST 方便tp5快加執行 $_SERVER=[]; if (isset($request->server)) { foreach ($request->server as $k => $v) { $_SERVER[strtoupper($k)] = $v; } } if (isset($request->header)) { foreach ($request->header as $k => $v) { $_SERVER[strtoupper($k)] = $v; } } $_GET=[]; if (isset($request->get)) { foreach ($request->get as $k => $v) { $_GET[$k] = $v; } } $_POST=[]; if (isset($request->post)) { foreach ($request->post as $k => $v) { $_POST[$k] = $v; } } ob_start();//開啟緩存 try{ think\App::run()->send(); } catch (Exception $e){ //todo } $res = ob_get_contents();//獲取緩存的內容 ob_end_clean(); //發送給瀏覽器 $response->end($res); //$http->close(); }); $http->start(); ``` 由于 tp 的問題,此代碼只有第一次訪問的路徑會成功,之后改變路徑,都指向第一次訪問的路徑,只是由于 `onWorkerStart` 已經提前加載了 tp 代碼導致,所以需要對tp 框架做調整 在`thinkphp/thinkphp/library/think/Request.php`中是注釋代碼 1. 在`path` 方法中 ```php //if (is_null($this->path)) { $suffix = Config::get('url_html_suffix'); $pathinfo = $this->pathinfo(); //} ``` 2. 在`pathinfo`方法中 ``` //if (is_null($this->pathinfo)) { code } ``` 此時訪問連接可以正常找到對應的控制器和方法 但是此時連接必須是`/?s=index/index/demo`形式
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看