dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1241|回复: 1

[php框架] Laravel集成Swoole教程

[复制链接]
  • TA的每日心情

    2024-11-19 20:46
  • 签到天数: 244 天

    [LV.8]以坛为家I

    4434

    主题

    1459

    帖子

    1万

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    10734
    发表于 2019-10-27 00:45:16 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    1.准备工作
    安装 Laravel
    [PHP] 纯文本查看 复制代码
    laravel new laravel-swoole
    本人使用 valet 进行开发,可以使用
    [PHP] 纯文本查看 复制代码
    laravel-swoole.test
    进行访问
    2.引入 swoole
    具体的 swoole 安装请移步官网进行下载,编译,安装,这里不多阐述了。
    1. 在项目更目录创建一个 server 文件夹,然后在该文件夹中创建 http_server.php 文件,具体的文件内容如下
    [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();
    在路由文件加入路由:
    [PHP] 纯文本查看 复制代码
    Route::get('/test1', 'UsersController@test');
     
    Route::get('/test2','UsersController@test2');
    在控制器添加方法:
    [PHP] 纯文本查看 复制代码
    /**
     
         * 测试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] 纯文本查看 复制代码
    php server/http_server.php
    访问浏览器:
    [AppleScript] 纯文本查看 复制代码
    http://127.0.0.1:9501/test1
     
    [url]http://127.0.0.1:9501/test2?name=Jelly[/url]
    对应的结果如下:
    访问 test1 路由
    访问 test2 路由



    回复

    使用道具 举报

  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 674 天

    [LV.9]以坛为家II

    13

    主题

    3128

    帖子

    8314

    积分

    超凡入圣

    Rank: 10Rank: 10Rank: 10

    积分
    8314

    发表于 2020-1-1 18:43:14 | 显示全部楼层
    啥也不说了,感谢楼主分享哇!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-12-23 15:30 , Processed in 0.087702 second(s), 32 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表