swoole完美适配thinkphp5,有需要的可参考学习下进阶中高级
momo
momo 2018-12-10 11:41:34
0
1
1371

以下是调试配置成功后的代码,为方便大家学习,节省大家研究时间,在此共享。

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)) {}注释或删除  里面的内容不动

结束!有疑问的欢迎在线留言交流

momo
momo

分享tp,laravel,swoole等教程,需要加微信:PHPopen888,还可加入微信群,各种大牛都是3-8年PH...

全部回复(1)
momo

实在是666

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板