【发布时间】:2021-04-13 21:21:54
【问题描述】:
在 Symfony 2 中,我们在控制器类中实现的这些操作方法在哪里调用?
我想做的是观察或修改所有操作方法返回的响应对象。
[已解决]
为了我的目的,为了观察和修改动作方法返回的响应,我不需要找出谁在调用动作方法,但我只需要为 kernel.response(和 kernel.view)创建一个事件侦听器.
【问题讨论】:
-
HttpKernel::handleRaw 是大部分控制器魔法发生的地方。这不是最容易阅读的代码,但是一旦你理解了它,那么 Symfony 如何实际实现它的请求动作响应范式就变得清晰了。比努力更值得。如果您想修改 Response 对象,那么您可能需要一个 kernel.response 监听器,如事件文档中所述。
-
@Cerad 感谢您的评论。我可以通过使用 kernel.response 来做我想做的事情。我正在采用另一种方式,这也应该可以解决我的问题,但是您节省了我很多时间,因为我不必深入研究框架源代码!
标签: php symfony controller frameworks