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

資訊專欄INFORMATION COLUMN

Just for fun——基于Swoole做個小框架

CoreDump / 1606人閱讀

摘要:使開發(fā)人員可以編寫高性能的異步并發(fā),服務(wù)。使用作為網(wǎng)絡(luò)通信框架,可以使企業(yè)研發(fā)團隊的效率大大提升,更加專注于開發(fā)創(chuàng)新產(chǎn)品。總之,這個庫讓可以常駐內(nèi)存,并提供了,等功能。

swoole
使 PHP 開發(fā)人員可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務(wù)。Swoole 可以廣泛應(yīng)用于互聯(lián)網(wǎng)、移動通信、企業(yè)軟件、云計算、網(wǎng)絡(luò)游戲、物聯(lián)網(wǎng)(IOT)、車聯(lián)網(wǎng)、智能家居等領(lǐng)域。 使用 PHP + Swoole 作為網(wǎng)絡(luò)通信框架,可以使企業(yè) IT 研發(fā)團隊的效率大大提升,更加專注于開發(fā)創(chuàng)新產(chǎn)品。

總之,這個庫讓PHP可以常駐內(nèi)存,并提供了http server,tcp server等功能。

docker-compose.xml

利用docker,快速生成帶swoole擴展的PHP環(huán)境,php-cli
這個鏡像,默認(rèn)運行的是目錄下public目錄中server.php文件

version: "2"
services:
  php:
    image: salamandermh/php-cli:1.0
    volumes:
      - ./src:/var/www
      - ./php/php.ini:/usr/local/etc/php/php.ini
    ports: 
      - 8888:8888
路由分發(fā)

因為swoole提供了http server的功能,所以swoole會告訴我們當(dāng)前$uri,$http_method這些量,所喲路由庫繼續(xù)可以用來分發(fā)$uri,這里選用了FastRoute,當(dāng)然,別的庫肯定也是可以的。

server.php
addRoute("GET", "/", $prefix . "IndexController:show");
});


$http->on("start", function ($server) {
    echo "Swoole http server is started at http://0.0.0.0:8888
";
});

$http->on("request", function ($request, $response) use($dispatcher) {
    $response->header("X-Powered-By", "Salamander");

    // Fetch method and URI from somewhere
    $httpMethod = $request->server["request_method"];
    $uri = $request->server["request_uri"];

    // Strip query string (?foo=bar) and decode URI
    if (false !== $pos = strpos($uri, "?")) {
        $uri = substr($uri, 0, $pos);
    }
    $uri = rawurldecode($uri);
    $res = "";

    $routeInfo = $dispatcher->dispatch($httpMethod, $uri);
    switch ($routeInfo[0]) {
        case FastRouteDispatcher::NOT_FOUND:
            // ... 404 Not Found
            break;
        case FastRouteDispatcher::METHOD_NOT_ALLOWED:
            $allowedMethods = $routeInfo[1];
            // ... 405 Method Not Allowed
            break;
        case FastRouteDispatcher::FOUND:
            $handler = $routeInfo[1];
            $vars = $routeInfo[2];
            $parts = explode(":", $handler);
            $controller = new $parts[0];
            $method = $parts[1];
            $res = call_user_func_array(array($controller, $method), [$vars]);
            break;
    }
    $response->end($res);
});

$http->start();

注意一下,$request->server中request_method和request_uri都是小寫的key,這和PHP內(nèi)置寫法不一樣。
swoole文檔

測試

打包下載

swoole-test

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

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

相關(guān)文章

  • Just for fun——基于Swoole個小框架

    摘要:使開發(fā)人員可以編寫高性能的異步并發(fā),服務(wù)。使用作為網(wǎng)絡(luò)通信框架,可以使企業(yè)研發(fā)團隊的效率大大提升,更加專注于開發(fā)創(chuàng)新產(chǎn)品。總之,這個庫讓可以常駐內(nèi)存,并提供了,等功能。 swoole 使 PHP 開發(fā)人員可以編寫高性能的異步并發(fā) TCP、UDP、Unix Socket、HTTP,WebSocket 服務(wù)。Swoole 可以廣泛應(yīng)用于互聯(lián)網(wǎng)、移動通信、企業(yè)軟件、云計算、網(wǎng)絡(luò)游戲、物聯(lián)網(wǎng)(...

    fevin 評論0 收藏0
  • Just for fun——Docker做個NMP環(huán)境

    摘要:總之,是用來管理多個容器的,用都會寫一個開啟所有服務(wù)關(guān)閉所有服務(wù)上面說了,關(guān)鍵是編排好,以下就是的目錄結(jié)構(gòu)訪問在目錄下運行命令,在瀏覽器訪問可以看到講解和都是用了官方的鏡像,而是從本地構(gòu)建的。 Docker Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,...

    用戶84 評論0 收藏0
  • Just for fun——Docker做個NMP環(huán)境

    摘要:總之,是用來管理多個容器的,用都會寫一個開啟所有服務(wù)關(guān)閉所有服務(wù)上面說了,關(guān)鍵是編排好,以下就是的目錄結(jié)構(gòu)訪問在目錄下運行命令,在瀏覽器訪問可以看到講解和都是用了官方的鏡像,而是從本地構(gòu)建的。 Docker Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,...

    Apollo 評論0 收藏0
  • Just for fun——Docker做個NMP環(huán)境

    摘要:總之,是用來管理多個容器的,用都會寫一個開啟所有服務(wù)關(guān)閉所有服務(wù)上面說了,關(guān)鍵是編排好,以下就是的目錄結(jié)構(gòu)訪問在目錄下運行命令,在瀏覽器訪問可以看到講解和都是用了官方的鏡像,而是從本地構(gòu)建的。 Docker Docker 是一個開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的 Linux機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,...

    eccozhou 評論0 收藏0

發(fā)表評論

0條評論

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