httprequest - Symfony kernel.controller事件发送响应

标签 httprequest symfony httpresponse

据我阅读 Symfony 文档,我找不到任何有关 kernel.controller 事件中响应处理的信息。

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

If a Response is returned at this stage, the process skips directly to the kernel.response event.

但是 kernel.controller 事件呢? 如果我在 kernel.controller 事件监听器中返回响应,响应将发送到客户端,但进程不会取消,并且会调用请求的 Controller 操作。

是否可以在 kernel.controller 事件中发送响应而不继续发送到请求的 Controller ?

最佳答案

您可以通过更改 FilterControllerEvent 中的 Controller 来间接实现。

您可以使用任何可调用对象作为 Controller ,只要它最终返回一个 Response 对象。在您的事件监听器中,您可以执行以下操作:

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

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

关于httprequest - Symfony kernel.controller事件发送响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41037245/

相关文章:

javascript - 在 Meteor 中解析错误的服务器响应

python - 在 Python 中遍历 HTML DOM

architecture - 消息队列架构(客户端到 Web 服务器到工作人员并返回)

php - 如何通过 FormBuilder 的字段传递 Twig 参数

php - Symfony2 错误 : The service "templating" has a dependency on a non-existent service "templating.globals"

java - 如何在httpRequest中设置 header 身份验证?

php - 如何将连接表合并到没有实体的学说查询中

c# - HTTP header 中内容处置的替代方案 (c#)

java - System.getProperty ("line.separator") 与 Android 的 "\n"

android - 如何处理类似于 facebook API 调用 android 的 ListView 中的事件