您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關swoole為什么要用命令行來啟動的方法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
swoole: PHP的協程高性能網絡通信引擎,使用完全同步的代碼實現異步程序。PHP代碼無需額外增加任何關鍵詞,底層自動進行協程調度,實現異步IO。
基于 swoole 的服務端應該在命令行方式下運行,以保證只有一個實例(端口是不能重復打開的)
我們用 Swoole 來做一個
<?php $http = new swoole_http_server('0.0.0.0', 80, SWOOLE_BASE); $http->on('request', function(swoole_http_request $req, swoole_http_response $res) use($http) { $res->write("hello world"); $res->end(); });
OK, 看出了吧, 不依賴框架/ ob_flush 等機制, Swoole 不能再使用 echo 作為輸出方法了, 得使用$res->write(String $content) 和 $res->end(String $endContent).
那么我們怎么訪問它呢?
命令行啟動
php app.php # 你在代碼里面 echo/var_dump/print(_r) 的內容將在這里輸出
然后在瀏覽器打開 http://localhost/ 就可以得到 hello world 的輸出.
可是發現了嗎? http://localhost/ 和 http://localhost/xxx 都輸出同樣的內容.
如果我們只想讓 php 在 http://localhost/ 下輸出, 怎么寫呢?
<?php $http = new swoole_http_server('0.0.0.0', 80, SWOOLE_BASE); $http->on('request', function(swoole_http_request $req, swoole_http_response $res) use($http) { if($req->server['request_uri'] == '/'){ $res->write("hello world"); $res->end(); return; } $res->end('404'); return; });
\Swoole_http_request $req 包含了很多我們將來能用到的請求數據. 包括 $req->server, $req->get, $req->post, 數組結構, ->server的KEY 為小寫
感謝各位的閱讀!關于“swoole為什么要用命令行來啟動的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。