Symfony kernel.controller事件发送响应

时间:2016-12-08 10:32:40

标签: httprequest symfony httpresponse

据我阅读Symfony-Documentation,我无法在kernel.controller事件中找到有关响应处理的任何内容。

对于kernel.request事件,文档说:

  

如果在此阶段返回响应,则该过程直接跳转到kernel.response事件。

kernel.controller事件怎么样? 如果我在kernel.controller事件侦听器中返回响应,则响应将发送到客户端,但该进程未被取消,并且将调用所请求的控制器操作。

是否可以在kernel.controller事件中发送响应而无需前往所请求的控制器?

1 个答案:

答案 0 :(得分:0)

间接地,您可以通过更改FilterControllerEvent中的控制器。

你可以使用任何callable作为控制器,因为它最后会返回一个Response对象。在您的事件监听器中,您可以执行以下操作:

$event->setController(function() {
    return new Response();
});

当然,您可以在控制器中返回任何类型的响应。