控制器注释执行后的Symfony2 kernel.response事件


Symfony2 kernel.response Event after controller annotations are executed

为了修改响应缓存控制标头,我使用kernel.response事件。但是当我的监听器被调用时,controllers@cache注释还没有执行。如何确保在执行完所有控制器注释后调用我的侦听器?

您可以通过设置优先级来更改同一事件上侦听器的顺序。正如您在SensioFrameworkExtraBundle的HttpCacheListener中看到的,没有明确的优先级集。这意味着它具有默认优先级0。因此,您可以将优先级设置为高于0的任何数字(我建议10或类似数字),以便在之前执行它

services:
    my_cache_listener:
        class: ...
        tags:
            - { name: kernel.event_listener, event: kernel.response, priority: 10 }