当将事件监听器定义为服务时,我该如何定义哪个函数与哪个事件一起使用?
服务.yml:
kernel.listener.desktop_init:
class: AirOS\TopBarModule\Listeners\InitAdminDesktopListener
tags:
- { name: kernel.listener }
监听类:
class InitAdminDesktopListener
{
public function onInitAdminDesktop(InitAdminDesktopEvent $event)
{
$session = $event->getSession();
$session->set('test2', 'im a test value!');
}
}
最佳答案
你已经完成了大部分工作;您需要的是标签的 event
和 method
参数(自 Beta4 版本起):
kernel.listener.desktop_init:
class: AirOS\TopBarModule\Listeners\InitAdminDesktopListener
tags:
- { name: kernel.listener, event: onInitAdminDesktop, method: onInitAdminDesktop }
请注意,在即将发布的 Symfony RC1 版本中,您需要使用 kernel.event_listener
而不是 kernel.listener
作为标记名称(请参阅 UPDATE file更多详情)。
关于php - Symfony2 事件监听器作为服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6433435/