以下是本人亲自调试配置成功后,为方便大家学习,节省大家研究时间,在此共享。
1.开启httpServer请求
可以在thinkphp的目录下创建一个server目录,里面创建一个http_server.php
2.在http_server.php中做几件事
1.配置静态资源文件
//配置静态文件 http://www.live-swoole.com:8811/
$http->set(
[
'enable_static_handler' =>true, //true则,底层收到Http请求会先判断document_root路径下是否存在此文件,如果存在会直接发送文件内容给客户端,不再触发onRequest回调
'document_root' => '/var/www/html/thinkphp5/public/static' , //默认静态资源文件存放目录
'worker_num' => 5,
]
);
2.swoole进程开启时加载thinkphp框架
$http->on('WorkerStart',function(swoole_server $serv,$worker_id){
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架里面的文件
require __DIR__ . '/../thinkphp/base.php';
});
3、因为swoole接收参数和thinkphp中接收不一样,所以需要转换为thinkphp可识别,转换POST参数示例如下:
$_POST = [];解决swoole对全局变量不会自动注销
if(isset($request->post)){
foreach ($request->post as $k => $v) {
$_POST[$k] = $v;
}
}
4.解决每次路由访问显示第一次访问时的路径信息
找到thinkphp/library/think/Request.php文件
function path
中的if (is_null($this->path)) {}
注释或删除 里面的内容不动
function pathinfo
中的if (is_null($this->pathinfo)) {}
注释或删除 里面的内容不动
结束!有疑问的欢迎在线留言交流。