【问题标题】:How to add new listener in the best way?如何以最好的方式添加新的听众?
【发布时间】:2023-03-25 06:59:01
【问题描述】:

我在 ZF 1.x 上有项目,我想使用 EventDispatcher Symfony 组件。 我有 2 个服务用户和主题。成功用户认证后,我需要激活用户的主题。所以我创建事件 - AuthenticationEvent 并在像这样的用户服务中进行身份验证后触发事件

$dispatcher->dispatch('user.authentication.success', new AuthenticationEvent($user));

但是我需要在哪里添加监听器?这段代码看起来像

$listener = new TopicListener();
$dispatcher->addListener('user.authentication.success', array($listener, 'onAuthenticationAction'));

我在用户服务中有方法验证,并且有代码行正在调用方法 activate($user) 以在验证成功的情况下激活主题。于是我在用户和主题服务之间有了耦合。这就是我决定使用 EventDispatcher 的原因。

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

【问题讨论】:

    标签: php symfony zend-framework


    【解决方案1】:

    我不知道采埃孚。 但是必须在 dispatch 事件之前添加监听器。

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

    【讨论】:

    • 我想在那里添加,但我会添加多余的侦听器,或者我可以链接到控制器名称?
    • 事件不仅可以在控制器中调度(例如在命令中)。在“引导程序”中添加侦听器。这不是一项昂贵的操作。
    猜你喜欢
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-23
    • 2015-09-23
    相关资源
    最近更新 更多