【发布时间】:2016-07-07 11:22:39
【问题描述】:
我使用 symfony 和 easy admin,我想收听事件 easy_admin.pre_persist。
在简单的管理控制器中,它像这样调用这个事件:
$this->dispatch(EasyAdminEvents::PRE_PERSIST, array('entity' => $entity));
这个常量:
/** @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?
【问题讨论】:
标签: symfony