国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Swoole完美支持ThinkPHP5

XiNGRZ / 1872人閱讀

摘要:這里創(chuàng)建的對象可以在進程生命周期內(nèi)使用目的加載框架中的內(nèi)容定義應(yīng)用目錄加載基礎(chǔ)文件把接收的信息轉(zhuǎn)換為可識別的對于超全局數(shù)組不會釋放函數(shù)輸出打印

Swoole完美支持ThinkPHP5 1、首先要開啟http的server

可以在thinkphp的目錄下創(chuàng)建一個server目錄,里面創(chuàng)建一個HTTPServer的php

2、需要在WorkerStart回調(diào)事件做兩件事

定義應(yīng)用目錄:define("APP_PATH", __DIR__ . "/../application/");

加載基礎(chǔ)文件:require __DIR__ . "/../thinkphp/base.php";

3、因為swoole接收get、post參數(shù)等和thinkphp中接收不一樣,所以需要轉(zhuǎn)換為thinkphp可識別,轉(zhuǎn)換get參數(shù)示例如下:
注意點: swoole對于超全局數(shù)組:$_SERVER$_GET、$_POST、define定義的常量等不會釋放,所以需要先清空一次
// 先清空
$_GET = [];
if (isset($request->get)) {
    foreach ($request->get as $key => $value) {
        $_GET[$key] = $value;
    }
}
4、thinkphp會把模塊、控制器、方法放到一個變量里去,所以通過pathinfo模式訪問會存在只能訪問第一次的pathinfo這個問題,worker進程里是不會注銷變量的
解決辦法:
thinkphp/library/think/Request.php
function path 中的if (is_null($this->path)) {}注釋或刪除
function pathinfo中的if (is_null($this->pathinfo)) {}注釋或刪除
注意:只刪除條件,不刪除條件中的內(nèi)容
5、swoole支持thinkphp的http_server示例:
// 面向過程寫法

$http = new swoole_http_server("0.0.0.0", 9501);

$http->set([
    // 開啟靜態(tài)資源請求
    "enable_static_handler" => true,
    "document_root" => "/opt/app/live/public/static",
    "worker_num" => 5,
]);

/**
 * WorkerStart事件在Worker進程/Task進程啟動時發(fā)生。這里創(chuàng)建的對象可以在進程生命周期內(nèi)使用
 * 目的:加載thinkphp框架中的內(nèi)容
 */
$http->on("WorkerStart", function (swoole_server $server, $worker_id) {
    // 定義應(yīng)用目錄
    define("APP_PATH", __DIR__ . "/../application/");
    // 加載基礎(chǔ)文件
    require __DIR__ . "/../thinkphp/base.php";
});

$http->on("request", function ($request, $response) {

    // 把swoole接收的信息轉(zhuǎn)換為thinkphp可識別的
    $_SERVER = [];
    if (isset($request->server)) {
        foreach ($request->server as $key => $value) {
            $_SERVER[strtoupper($key)] = $value;
        }
    }

    if (isset($request->header)) {
        foreach ($request->header as $key => $value) {
            $_SERVER[strtoupper($key)] = $value;
        }
    }

    // swoole對于超全局數(shù)組:$_SERVER、$_GET、$_POST、define不會釋放
    $_GET = [];
    if (isset($request->get)) {
        foreach ($request->get as $key => $value) {
            $_GET[$key] = $value;
        }
    }

    $_POST = [];
    if (isset($request->post)) {
        foreach ($request->post as $key => $value) {
            $_POST[$key] = $value;
        }
    }

    // ob函數(shù)輸出打印
    ob_start();
    try {
        thinkContainer::get("app", [APP_PATH]) ->run() ->send();
        $res = ob_get_contents();
        ob_end_clean();
    } catch (Exception $e) {
        // todo
    }

    $response->end($res);
});

$http->start();

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/30809.html

相關(guān)文章

  • Swoole完美支持ThinkPHP5

    摘要:這里創(chuàng)建的對象可以在進程生命周期內(nèi)使用目的加載框架中的內(nèi)容定義應(yīng)用目錄加載基礎(chǔ)文件把接收的信息轉(zhuǎn)換為可識別的對于超全局數(shù)組不會釋放函數(shù)輸出打印 Swoole完美支持ThinkPHP5 1、首先要開啟http的server 可以在thinkphp的目錄下創(chuàng)建一個server目錄,里面創(chuàng)建一個HTTPServer的php 2、需要在WorkerStart回調(diào)事件做兩件事 定義應(yīng)用目錄:d...

    RancherLabs 評論0 收藏0
  • 《當(dāng) Swoole 遇上 ThinkPHP5》:Hello,World!

    摘要:安裝框架安裝如果已經(jīng)安裝了可以跳過本步驟,但是請確定通過命令來確保已經(jīng)使用了最新版本的使用以下命令可以直接通過官網(wǎng)下載并自動安裝到目錄下如果以上安裝過程極慢的話,可以嘗試用以下方式通過國內(nèi)鏡像來安裝。 《當(dāng) Swoole 遇上 ThinkPHP5》:Hello,World! 本文假設(shè)你已經(jīng)有了 Linux 操作系統(tǒng)的 PHP 環(huán)境,強烈推薦使用 Vagrant 來搭建開發(fā)環(huán)境 安裝 ...

    xzavier 評論0 收藏0
  • thinkphp5+swoole實現(xiàn)異步郵件群發(fā)(SMTP方式)

    摘要:圖中其他兩個文件和是郵件發(fā)送類的核心文件,為了簡化調(diào)用,抽取了出來,詳細的用法和參數(shù)設(shè)置,可以參考的使用說明注意點在此步驟中,我們需要注意幾點是你設(shè)置的郵件發(fā)送的賬號是否已經(jīng)開啟并且找對對應(yīng)的安全協(xié)議和端口號。 1、環(huán)境說明 阿里云centos7thinkphp5.0.11swoole2.0.8 2、tp實現(xiàn)郵件發(fā)送 在項目下建立如下的文件目錄:showImg(https://segm...

    tuniutech 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<