如何深入解析ThinkPHP6.0中管道模式与中间件的具体实现?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2218个文字,预计阅读时间需要9分钟。
相关专题
说明
ThinkPHP 6.0 RC5 开始使用了管道模式来实现中间件,比起之前版本的实现更加简洁、有序。这篇文章对其实现细节进行分析。
首先我们从入口文件 public/index.php 开始,$http = (new App())->http;
获得一个 http 类的实例后调用它的 run 方法:$response = $http->run();,然后它的 run 方法又调用了 runWithRequest 方法:
protected function runWithRequest(Request $request) { . . . return $this->app->middleware->pipeline() ->send($request) ->then(function ($request) { return $this->dispatchToRoute($request); }); }
中间件的执行都在最后的 return 语句中。
本文共计2218个文字,预计阅读时间需要9分钟。
相关专题
说明
ThinkPHP 6.0 RC5 开始使用了管道模式来实现中间件,比起之前版本的实现更加简洁、有序。这篇文章对其实现细节进行分析。
首先我们从入口文件 public/index.php 开始,$http = (new App())->http;
获得一个 http 类的实例后调用它的 run 方法:$response = $http->run();,然后它的 run 方法又调用了 runWithRequest 方法:
protected function runWithRequest(Request $request) { . . . return $this->app->middleware->pipeline() ->send($request) ->then(function ($request) { return $this->dispatchToRoute($request); }); }
中间件的执行都在最后的 return 语句中。

