我使用symfony和簡單的管理員,我想監聽事件easy_admin.pre_persist
。Symfony添加事件監聽器
在易於管理控制器,它調用此事件是這樣的:
$this->dispatch(EasyAdminEvents::PRE_PERSIST, array('entity' => $entity));
這consts:
/** @Event("Symfony\Component\EventDispatcher\GenericEvent") */
const PRE_PERSIST = 'easy_admin.pre_persist';
如果我在同一個控制器添加監聽此事件是這樣的:
$ed = $this->get('event_dispatcher');
$ed->addListener('easy_admin.pre_persist', function($e) {
echo 'it works!';
die();
});
...它的工作原理。
但我想添加此監聽器在其他地方。我認爲services.yml將是它的好地方。我已閱讀Sf文檔,我應該添加這種方式的服務:
# app/config/services.yml
services:
app.exception_listener:
class: AppBundle\EventListener\ExceptionListener
tags:
- { name: kernel.event_listener, event: kernel.exception }
但有2個屬性 - 名稱和事件。我只知道活動名稱,easy_admin.pre_persist
。
它是如何工作的?什麼是name
這個事件和什麼是event
? 如果我可以添加監聽器easy_admin.pre_persist
如何將此監聽器添加到services.yml?