t4web/event-subscriber

ZF2 模块。应用事件的统一管理位置

2.0.0 2018-07-27 10:13 UTC

This package is auto-updated.

Last update: 2024-08-26 17:41:43 UTC


README

ZF2 模块。应用事件的统一管理位置。

安装

将以下内容添加到您的 composer.json

"t4web/event-subscriber": "~1.0.0"

并将以下内容添加到您的 config/application.config.php

'modules' => [
    // ...
    'T4web\EventSubscriber',
    // ...
],

问题

像往常一样,您的处理程序遍布整个项目,而您(或团队成员)并不知道在看到此代码 $this->getEventManager()->trigger($event); 时将执行什么。您花费大量时间在项目中的各个部分使用 Crtl+F

解决方案

这只是建议(或团队规则)——在您的 module.config.php 中描述所有处理程序。

    'events' => [
        'Zend\Mvc\Application' => [
            'render' => [
                SomeListenerOne::class,
            ],
        ],
        'Users\User\Infrastructure\Repository' => [
            'create' => [
                SomeListenerTwo::class,
                SomeListenerThree::class,
            ],
        ],
        'Users\User\Infrastructure\Repository' => [
            'status:change' => [
                CreateTimelineEntryListener::class,
                UserNotifyListener::class,
                ExpireUserTokensListener::class,
                AdminLogListener::class,
            ],
        ],
        
        // ...
        'EventIdentifier' => [
            'EventName' => [
                'Callback1', // can be invokable class
                'Callback2',
                // ...
                'CallbackN',
            ],
        ],
    ],

T4web\EventSubscriber - 读取此配置并将描述中的每个处理程序附加到相应的事件。