据我阅读Symfony-Documentation,我无法在kernel.controller
事件中找到有关响应处理的任何内容。
对于kernel.request
事件,文档说:
如果在此阶段返回响应,则该过程直接跳转到kernel.response事件。
但kernel.controller
事件怎么样?
如果我在kernel.controller
事件侦听器中返回响应,则响应将发送到客户端,但该进程未被取消,并且将调用所请求的控制器操作。
是否可以在kernel.controller
事件中发送响应而无需前往所请求的控制器?
答案 0 :(得分:0)
间接地,您可以通过更改FilterControllerEvent中的控制器。
你可以使用任何callable作为控制器,因为它最后会返回一个Response对象。在您的事件监听器中,您可以执行以下操作:
$event->setController(function() {
return new Response();
});
当然,您可以在控制器中返回任何类型的响应。