Php 如何以最佳方式添加新的侦听器?

Php 如何以最佳方式添加新的侦听器?,php,symfony,zend-framework,Php,Symfony,Zend Framework,我在ZF1.x上有一个项目,我想使用EventDispatcher Symfony组件。 我有两个服务用户和主题。用户身份验证成功后,我需要激活用户的主题。因此,我在用户服务中创建了事件-身份验证事件和在身份验证后激发事件,如下所示 $dispatcher->dispatch('user.authentication.success', new AuthenticationEvent($user)); 但是我需要在哪里添加侦听器呢?这个代码看起来像 $listener = new Top

我在ZF1.x上有一个项目,我想使用EventDispatcher Symfony组件。 我有两个服务用户和主题。用户身份验证成功后,我需要激活用户的主题。因此,我在用户服务中创建了事件-身份验证事件和在身份验证后激发事件,如下所示

$dispatcher->dispatch('user.authentication.success', new AuthenticationEvent($user));
但是我需要在哪里添加侦听器呢?这个代码看起来像

$listener = new TopicListener();
$dispatcher->addListener('user.authentication.success', array($listener, 'onAuthenticationAction'));
我在用户服务中使用了方法身份验证,在身份验证成功的情况下,有代码行调用方法activate($User)来激活主题。于是,我在用户和主题服务之间建立了耦合。这就是我决定使用EventDispatcher的原因

那么,添加侦听器的最佳位置在哪里呢?在代码的某些引导部分?

我不知道ZF。 但您必须在分派事件之前添加侦听器


有“bootsrap”文件吗?在那里(或在前端控制器中)添加侦听器

我想添加到那个里,但我将添加冗余侦听器,或者我可以链接到控制器名称?事件不仅可以在控制器中调度(例如,在命令中)。在“引导”中添加侦听器。这不是一个昂贵的手术。