• Laravel集成Swoole教程


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

    对应的结果如下:

    访问 test1 路由

    访问 test2 路由

    以上就是Laravel集成Swoole教程的详细内容

    以上内容希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里入手去提升,对此我整理了一些资料,包括但不限于:分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6,laravel,YII2,Redis,Swoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处

     

  • 相关阅读:
    20210519日报
    20210518日报
    20210517日报
    20210514日报
    20210513日报
    20210512日报
    20210511日报
    数据挖掘提分三板斧-转
    特征变量和y值的可视化
    kaggle 2015年航班延误
  • 原文地址:https://www.cnblogs.com/a609251438/p/12163705.html
Copyright © 2020-2023  润新知