Laravel集成Swoole教程

2020-08-13 19:06:40

1.准备工作

安装 Laravel

laravel new laravel-swoole

本人使用 valet 进行开发,可以使用

laravel-swoole.test

进行访问

2.引入 swoole

具体的 swoole 安装请移步官网进行下载,编译,安装,这里不多阐述了。

1. 在项目更目录创建一个 server 文件夹,然后在该文件夹中创建 http_server.php 文件,具体的文件内容如下

<?php$http = new swoole_http_server('127.0.0.1', 9501);$http->set([    'worker_num' => 8,    'max_request' => 5000,//    'document_root' => '/Users/apple/Code/Teacher_Project/swoole_live/resources/live/',//    'enable_static_handler' => true,]);//工作进程启动$http->on('WorkerStart', function ($serv, $worker_id) {    //加载index文件的内容    require __DIR__ . '/../vendor/autoload.php';    require_once __DIR__ . '/../bootstrap/app.php';});//监听http请求$http->on('request', 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(IlluminateContractsHttpKernel::class);    $laravelResponse = $kernel->handle(        $request = IlluminateHttpRequest::capture()    );    $laravelResponse->send();    $kernel->terminate($request, $laravelResponse);    $res = ob_get_contents();//获取缓存区的内容    ob_end_clean();//清除缓存区    //输出缓存区域的内容    $response->end($res);});$http->start();

在路由文件加入路由:

Route::get('/test1', 'UsersController@test');Route::get('/test2','UsersController@test2');

在控制器添加方法:

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

3. 启动 swoole

在终端下输入:

php server/http_server.php

访问浏览器:

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

对应的结果如下:

访问 test1 路由

8089344bb5eb3872d6443dfbd0443c7.png

访问 test2 路由

14e6c6f1ccb92f7946dcf662785e325.png

更多Laravel相关技术文章,请访问Laravel框架入门教程栏目进行学习!