如何让swoole完美支持tp?
首先,附上完整http_server代码一篇
这里,先不要去管http_server,让我们单纯的来看一眼tp5.1框架是怎么启动的
入口文件是在public目录下的index.php (该文件 1定义常量:应用目录 2引入框架引导文件)
index.php
紧接着我们看一眼框架引导文件 start.php 文件( 1加载基础文件 2执行应用并且响应)
好让我们言归正传,想让swoole完美支持tp5,那么当我们请求 http_server服务的时候,就要默认加载TP框架的核心代码。这里我们就可以通过官方提供的事件回调函数 onWorkStart 在进程启动时自动调用tp框架的引导文件(最大的好处是可以实现热加载)
onWorkStart函数官方文档
于是我们在onWorkStart 函数中引入了tp5框架的核心代码
之后我们就可以执行tp应用并且响应
index模块index控制器代码如下图所示
当我们一切都配置好之后,浏览器访问 :8811/index/index/index http_server将会自动启动tp
至于url传递参数问题,我们打印一下$request->server,在服务器端上可见:因此需要我们遍历数组重新组装
(这里注意,当参数发生了变化,swoole是不会释放原来的内容,这时就需要我们手动清除原来的内容)
thinkphp/library/think/request.php 下path方法(将路径存储在缓存中,注销掉)