【发布时间】:2019-08-24 23:35:23
【问题描述】:
我已经阅读了来自PHP-FIG(HTTP 服务器请求处理程序)的 PSR-15,并且想知道何时调用了一个动作(控制器动作或闭包)。
通过所有中间件进行处理时,应在通过所有中间件后调用该操作。在操作之后,所有中间件再次从内部传递到外部(如 Slim 框架的User Guide 中所述)。
我在 GitHub 上浏览了 Laravel 中的代码,但不知道他们是如何调用动作然后再次遍历所有中间件的。
answer 告诉我 Slim 将自己添加到中间件堆栈中。我猜它然后以某种方式执行动作。但是,Slim 使用的是双通道。
中间件堆栈和执行如何通过单次传递(如 PSR-15 中所述)并在所有中间件之间调用操作?
【问题讨论】:
-
我在同一条船上。我们目前有一个设置,我们有一个路由器文件,它计算出要调用的控制器,然后调用控制器。在控制器的构造中,我们执行了许多不同的任务,例如 OAuth 验证、速率限制检查等。我想将所有这些额外的功能分解到中间件中。我一直在试图弄清楚从哪里调用这些中间件,从哪里绑定请求处理程序,以及在这种情况下它到底需要做什么。
标签: php controller action middleware php-fig