Laravel集成Swoole教程
2024-09-24 17:40:00
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');
链接:https://pan.baidu.com/s/1v5gm7n0L7TGyejCmQrMh2g 提取码:x2p5
免费分享,但是X度限制严重,如若链接失效点击链接或搜索加群 群号518475424。
在控制器添加方法:
/** * 测试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 路由
最新文章
- Kafka如何创建topic?
- TAP/TUN摘要
- class can not be find with platformType:1 step 1
- OpenGL的glTexImage2D()与gluBuild2DMipmaps()的使用方法及区别
- linux下安装pymssql
- 用wget下载文件
- .NET C#: NameValueCollection
- webpack es6支持配置
- [AngularJS] Introduction to ui-router
- 第一篇:groovy对DSL的语法支持
- 021QTP之焦点(多思考)
- Xcode 7真机测试详解
- PE文件结构整理
- tail
- bootstrap的总结1 - 网格系统
- 几个SQL语句笔试题
- div模拟输入框input/textarea
- 记一次JavaWeb网站技术架构总结
- java 静态导入 小结
- freemarker报错之五
热门文章
- vertx 异步编程指南 step7-保护和控制访问
- this(this的4种指向和改变this指向的方式)
- vue项目进入mui.js报错 typeError: &#39;caller&#39;, &#39;callee&#39;, and &#39;arguments&#39; properties may not be accessed on strict mode .....
- awit的用法,等待执行结果
- 【软件工程第三次作业】结对编程:四则运算( Java 实现)
- idea svn 文件还原到指定版本
- 综合架构之Rsync备份服务,服务端和客户端配置
- Mybatis-plus中的condition条件
- A9G开发
- python yield实现协程(生产者-消费者)