Maison  >  Article  >  cadre php  >  Pourquoi swoole doit-il être démarré en utilisant la ligne de commande ?

Pourquoi swoole doit-il être démarré en utilisant la ligne de commande ?

(*-*)浩
(*-*)浩original
2019-12-13 09:31:392450parcourir

Pourquoi swoole doit-il être démarré en utilisant la ligne de commande ?

swoole : Le moteur de communication réseau hautes performances coroutine de PHP utilise du code entièrement synchrone pour implémenter des programmes asynchrones. Il n'est pas nécessaire d'ajouter des mots-clés supplémentaires au code PHP. La couche inférieure effectue automatiquement la planification des coroutines pour implémenter les E/S asynchrones.

Le serveur basé sur swoole doit être exécuté en mode ligne de commande pour garantir qu'il n'y a qu'une seule instance (le port ne peut pas être ouvert à plusieurs reprises)

Nous utilisons Swoole pour créez-en un (Apprentissage recommandé : tutoriel vidéo 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, vous voyez, il ne repose pas sur frameworks/ob_flush et d'autres mécanismes, Swoole ne peut plus utiliser echo comme méthode de sortie , vous devez utiliser $res ->write(String $content) et $res->end(String $endContent).

Alors, comment y accéder ?

Démarrage en ligne de commande

php app.php
# 你在代码里面 echo/var_dump/print(_r) 的内容将在这里输出

Ensuite, ouvrez http://localhost/ dans le navigateur et vous pourrez obtenir la sortie de hello world.

Mais l'avez-vous trouvé http:/ /localhost/ et http://localhost/ xxx génèrent tous le même contenu.

Si nous voulons uniquement que php soit affiché sous http://localhost/, comment l'écrire ?

<?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 contient de nombreuses informations que nous pourrons utiliser à l'avenir. Données de requête reçues, y compris $req->server, $req->get, $req->post, structure du tableau, ->CLÉ du serveur. est en minuscule

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn