Laravel集成Swoole教程

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(&#39;127.0.0.1&#39;, 9501); $http->set([     'worker_num' =&gt; 8,     'max_request' =&gt; 5000, //    'document_root' =&gt; '/Users/apple/Code/Teacher_Project/swoole_live/resources/live/', //    'enable_static_handler' =&gt; true, ]); //工作进程启动 $http-&gt;on('WorkerStart', function ($serv, $worker_id) {     //加载index文件的内容     require __DIR__ . '/../vendor/autoload.php';     require_once __DIR__ . '/../bootstrap/app.php'; }); //监听http请求 $http-&gt;on('request', function ($request, $response) {     //server信息     if (isset($request-&gt;server)) {         foreach ($request-&gt;server as $k =&gt; $v) {             $_SERVER[strtoupper($k)] = $v;         }     }     //header头信息     if (isset($request-&gt;header)) {         foreach ($request-&gt;header as $k =&gt; $v) {             $_SERVER[strtoupper($k)] = $v;         }     }     //get请求     if (isset($request-&gt;get)) {         foreach ($request-&gt;get as $k =&gt; $v) {             $_GET[$k] = $v;         }     }     //post请求     if (isset($request-&gt;post)) {         foreach ($request-&gt;post as $k =&gt; $v) {             $_POST[$k] = $v;         }     }     //文件请求     if (isset($request-&gt;files)) {         foreach ($request-&gt;files as $k =&gt; $v) {             $_FILES[$k] = $v;         }     }     //cookies请求     if (isset($request-&gt;cookie)) {         foreach ($request-&gt;cookie as $k =&gt; $v) {             $_COOKIE[$k] = $v;         }     }     ob_start();//启用缓存区     //加载laravel请求核心模块     $kernel = app()-&gt;make(IlluminateContractsHttpKernel::class);     $laravelResponse = $kernel-&gt;handle(         $request = IlluminateHttpRequest::capture()     );     $laravelResponse-&gt;send();     $kernel-&gt;terminate($request, $laravelResponse);     $res = ob_get_contents();//获取缓存区的内容     ob_end_clean();//清除缓存区     //输出缓存区域的内容     $response-&gt;end($res); }); $http-&gt;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-&gt;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 路由

Laravel集成Swoole教程

访问 test2 路由

Laravel集成Swoole教程

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

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享