加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Laravel集成Swoole教程

发布时间:2020-12-14 19:56:41 所属栏目:大数据 来源:网络整理
导读:1.准备工作 安装 Laravel laravel new laravel-swoole ? 本人使用 valet 进行开发,可以使用 laravel-swoole.test ? 进行访问 2.引入 swoole 具体的 swoole 安装请移步官网进行下载,编译,安装,这里不多阐述了。 1. 在项目更目录创建一个 server 文件夹,

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等多个知识点高级进阶干货需要的可以免费分享给大家,需要的可以加入我的官方群点击此处。

?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读