t4web / event-subscriber
ZF2 模块。应用事件的统一管理位置
2.0.0
2018-07-27 10:13 UTC
Requires
- php: >=5.5.0
- zendframework/zend-eventmanager: 3.2.*
- zendframework/zend-servicemanager: 3.3.*
Requires (Dev)
- phpunit/phpunit: ~4.5
- squizlabs/php_codesniffer: ^2.3
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
- 读取此配置并将描述中的每个处理程序附加到相应的事件。