Symfony2制作容器感知事件调度程序

时间:2015-11-08 10:19:05

标签: symfony symfony-2.7

我想在触发自定义事件时在我的Symfony2应用程序中的内核上设置HTTP请求(类似于Symfony\Component\HttpKernel\Event\GetResponseEvent在内核上设置HTTP响应的方式)。

我跟着Event Listeners cookbook并构建了一个Request,但我的自定义事件无法访问内核以将请求传递给。进一步阅读建议我需要一个容器感知事件调度程序,并且有一个quick guide here

在设置下,指南说“通过将ContainerInterface注入ContainerAwareEventDispatcher”可以直接进行安装。

use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher;

$container = new ContainerBuilder();
$dispatcher = new ContainerAwareEventDispatcher($container);

该代码在我的应用中的位置?

1 个答案:

答案 0 :(得分:3)

您混淆了,因为您正在尝试应用针对裸事件调度程序组件的指令。

只需在事件监听器服务中注入容器:

my_listener:
    calls:
        - [setContainer, [@service_container]]