我需要在哪个文件中编写用于在symfony2中附加EventDispatcher的侦听器的代码

时间:2012-07-26 01:40:33

标签: php events symfony doctrine-orm

symfony2 Docs中,他们说要使用此代码

$listener = new AcmeListener();
$dispatcher->addListener('foo.action', array($listener, 'onFooAction'));

我有两个问题

  1. 我需要在哪个文件中写下该行
  2. 我可以在foo.action这样的第一个论点中写出哪些其他事件。我的意思是事件buitin或doctrine事件或symfony事件或自定义

2 个答案:

答案 0 :(得分:0)

如果您将组件用作框架的一部分,则不需要。只需声明一个标记为事件监听器的服务。就该事件而言,它是自定义事件的一个示例。您可以根据自己的喜好为自己的活动命名。

答案 1 :(得分:0)

你必须在你的控制器中写这样的

if ($form->isValid()) {
            $em = $this->getDoctrine()->getEntityManager();
            $em->persist($entity);
            $em->flush();


            $dispatcher = $this->container->get('event_dispatcher');
            $dispatcher->dispatch('your.event.name', new YourEvent($entity));

}