Laravel集成Swoole教程
程序员文章站
2022-05-09 12:14:43
1.准备工作 安装 Laravel 本人使用 valet 进行开发,可以使用 进行访问 2.引入 swoole 具体的 swoole 安装请移步官网进行下载,编译,安装,这里不多阐述了。 1. 在项目更目录创建一个 server 文件夹,然后在该文件夹中创建 http_server.php 文件,具 ......
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');
在控制器添加方法:
/**
* 测试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 路由
推荐阅读
-
swoole运行模式加速laravel应用的详细介绍
-
Laravel 中使用 swoole 项目实战开发案例一 (建立 swoole 和前端通信)
-
laravel5.5 PHP递归实现无限级分类列表的代码教程
-
使用IronPython把Python脚本集成到.NET程序中的教程
-
Tekla Structural Designer如何安装激活?集成3D软件安装激活教程
-
thinkphp 6.0 swoole扩展websocket使用教程
-
laravel安装和配置教程
-
Laravel学习教程之request validation的编写
-
实现websocket 主动消息推送,用laravel+Swoole
-
Laravel 中使用 swoole 项目实战开发案例二 (后端主动分场景给界面推送消息)