ホームページ  >  記事  >  PHPフレームワーク  >  swoole をコマンドラインを使用して起動する必要があるのはなぜですか?

swoole をコマンドラインを使用して起動する必要があるのはなぜですか?

(*-*)浩
(*-*)浩オリジナル
2019-12-13 09:31:392449ブラウズ

swoole をコマンドラインを使用して起動する必要があるのはなぜですか?

swoole: PHP のコルーチン高性能ネットワーク通信エンジンは、完全同期コードを使用して非同期プログラムを実装します。 PHP コードにキーワードを追加する必要はなく、最下層でコルーチン スケジューリングが自動的に実行され、非同期 IO が実装されます。

swoole ベースのサーバーは、インスタンスが 1 つだけになるようにコマンド ライン モードで実行する必要があります (ポートを繰り返し開くことはできません)

Swoole を使用して、作成してください (推奨学習: swoole ビデオ チュートリアル )

<?php
$http = new swoole_http_server(&#39;0.0.0.0&#39;, 80, SWOOLE_BASE);
$http->on(&#39;request&#39;, 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(&#39;0.0.0.0&#39;, 80, SWOOLE_BASE);
$http->on(&#39;request&#39;, function(swoole_http_request $req, swoole_http_response $res) use($http) {
    if($req->server[&#39;request_uri&#39;] == &#39;/&#39;){
        $res->write("hello world");
        $res->end();
        return;
    }
    $res->end(&#39;404&#39;);
    return;
});

\Swoole_http_request $req には、$req->server、$req->get、$req->post、配列構造、->server の使用されるリクエスト データなど、将来使用できる多くの情報が含まれています。 KEYは小文字です

以上がswoole をコマンドラインを使用して起動する必要があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。