• 技术文章 >php框架 >Laravel

    Laravel集成Swoole教程

    藏色散人藏色散人2019-07-17 13:40:06转载3161

    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(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();

    在路由文件加入路由:

    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/test1
    http://127.0.0.1:9501/test2?name=Jelly

    对应的结果如下:

    访问 test1 路由

    8089344bb5eb3872d6443dfbd0443c7.png

    访问 test2 路由

    14e6c6f1ccb92f7946dcf662785e325.png

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

    以上就是Laravel集成Swoole教程的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:LaravelChen,如有侵犯,请联系admin@php.cn删除
    专题推荐:Laravel Swoole
    上一篇:phpstudy使用PHP+nginx配置Laravel 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Laravel jwt 多表验证隔离• Laravel文档工具• Laravel是怎样防止你的定时任务重复执行的• phpstudy使用PHP+nginx配置Laravel
    1/1

    PHP中文网