2012-07-26 51 views
0

連接監聽此事件IN的symfony2 Docs,他們說使用此代碼在哪個文件我需要編寫代碼爲Symfony2的

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

我有兩個問題

  1. 在哪個文件我需要寫那條線
  2. 我可以在第一個參數中寫什麼其他事件,如foo.action。我的意思是,事件buitin或教條事件或symfony事件或自定義
+0

寫看到這個問題剛回答:http://stackoverflow.com/questions/11661057/how-to-create-custom-event-in -symfony2/11661148#comment15454258_11661148 – gview 2012-07-26 01:46:28

回答

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)); 

} 
0

如果您使用該組件作爲框架的一部分,則不需要。只需聲明一個標記爲事件偵聽器的服務即可。就這一事件而言,這是一個自定義事件的例子。無論你喜歡什麼,你都可以爲你的活動命名。

+0

對不起,我不明白這一點。我只想知道在哪個文件中我必須編寫addListener行。或者可以給我代碼示例你的意思。如果事件是自定義的,在哪個文件中寫入調度事件的代碼 – user825904 2012-07-26 01:52:45

+0

@ user1544681您不必編寫addListener行,您可能只需要聲明一個服務。你是單獨使用sf2框架還是使用EventDispatcher組件? – Lusitanian 2012-07-26 01:53:23

+0

我正在使用sf2。你可以給我示例代碼的yml文件,你在說什麼是完成的 – user825904 2012-07-26 01:58:26

相關問題