Maison  >  Article  >  cadre php  >  Tutoriel Swoole d'intégration de Laravel

Tutoriel Swoole d'intégration de Laravel

藏色散人
藏色散人avant
2019-07-17 13:40:064397parcourir

Tutoriel Swoole d'intégration de Laravel

1. Préparation

Installer Laravel

laravel new laravel-swoole

Utilisation personnelle valet pour le développement, vous pouvez utiliser

laravel-swoole.test

pour accéder

2 Présenter swoole

Pour une installation spécifique de swoole, veuillez vous rendre sur le site. site officiel. Le téléchargement, la compilation et l’installation ne sont pas expliqués ici.

1. Créez un dossier de serveur dans le répertoire du projet, puis créez le fichier http_server.php dans le dossier. Le contenu spécifique du fichier est le suivant

<?php
$http = new swoole_http_server(&#39;127.0.0.1&#39;, 9501);
$http->set([
    &#39;worker_num&#39; => 8,
    &#39;max_request&#39; => 5000,
//    &#39;document_root&#39; => &#39;/Users/apple/Code/Teacher_Project/swoole_live/resources/live/&#39;,
//    &#39;enable_static_handler&#39; => true,
]);
//工作进程启动
$http->on(&#39;WorkerStart&#39;, function ($serv, $worker_id) {
    //加载index文件的内容
    require __DIR__ . &#39;/../vendor/autoload.php&#39;;
    require_once __DIR__ . &#39;/../bootstrap/app.php&#39;;
});
//监听http请求
$http->on(&#39;request&#39;, function ($request, $response) {
    //server信息
    if (isset($request->server)) {
        foreach ($request->server as $k => $v) {
            $_SERVER[strtoupper($k)] = $v;
        }
    }
    //header头信息
    if (isset($request->header)) {
        foreach ($request->header as $k => $v) {
            $_SERVER[strtoupper($k)] = $v;
        }
    }
    //get请求
    if (isset($request->get)) {
        foreach ($request->get as $k => $v) {
            $_GET[$k] = $v;
        }
    }
    //post请求
    if (isset($request->post)) {
        foreach ($request->post as $k => $v) {
            $_POST[$k] = $v;
        }
    }
    //文件请求
    if (isset($request->files)) {
        foreach ($request->files as $k => $v) {
            $_FILES[$k] = $v;
        }
    }
    //cookies请求
    if (isset($request->cookie)) {
        foreach ($request->cookie as $k => $v) {
            $_COOKIE[$k] = $v;
        }
    }
    ob_start();//启用缓存区
    //加载laravel请求核心模块
    $kernel = app()->make(Illuminate\Contracts\Http\Kernel::class);
    $laravelResponse = $kernel->handle(
        $request = Illuminate\Http\Request::capture()
    );
    $laravelResponse->send();
    $kernel->terminate($request, $laravelResponse);
    $res = ob_get_contents();//获取缓存区的内容
    ob_end_clean();//清除缓存区
    //输出缓存区域的内容
    $response->end($res);
});
$http->start();

Ajoutez un routage au fichier de routage :

Route::get(&#39;/test1&#39;, &#39;UsersController@test&#39;);
Route::get(&#39;/test2&#39;,&#39;UsersController@test2&#39;);

Ajouter une méthode dans le contrôleur :

/**
     * 测试1
     * @param Request $request
     * @return string
     */
    public function test(Request $request)
    {
        return view(&#39;test&#39;);#在你的视图文件夹创建test.blade.php
    }
    /**
     * 测试2
     * @param Request $request
     * @return string
     */
    public function test2(Request $request)
    {
        return &#39;Hello World2:&#39; . $request->get(&#39;name&#39;);
    }

3. Démarrer swoole

Entrer dans le terminal :

php server/http_server.php

pour visitez le navigateur :

http://127.0.0.1:9501/test1
http://127.0.0.1:9501/test2?name=Jelly

Les résultats correspondants sont les suivants :

Visitez l'itinéraire test1

Tutoriel Swoole dintégration de Laravel

Visitez test2 Routing

Tutoriel Swoole dintégration de Laravel

Pour plus d'articles techniques liés à Laravel, veuillez visiter la colonne Tutoriel de démarrage de Laravel Framework pour apprendre !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer