lium / event-dispatcher
PSR-14标准事件处理实现。
v0.1.0
2019-12-08 10:34 UTC
Requires
- php: ^7.2.5
- psr/event-dispatcher: ^1.0
Requires (Dev)
- phpunit/phpunit: ^8.3
- symfony/var-dumper: ^4.3
- vimeo/psalm: ^3.6
This package is auto-updated.
Last update: 2024-09-22 23:58:29 UTC
README
一个严格遵循PSR-14,注重简洁性的实现。
为什么?
这个库的主要目标是严格遵循PSR-14。
安装
composer require lium/event-dispatcher
用法
以下是一个快速示例,展示如何使用它
<?php use App\Event\UserLoggedIn; use Lium\EventDispatcher\EventDispatcher; use Lium\EventDispatcher\ListenerProvider\DefaultListenerProvider; // Listeners definitions $listenerCalledForEveryEvent = function (object $event) { // This listener will match all events because its argument has the scalar type "object" echo sprintf('A listener has been called with the event "%s".', get_class($event)); }; $updateUserLastLoginDate = function (UserHasLoggedIn $event) { $user = $event->getUser(); echo sprintf('The user "%s" has logged in.', $user->getUsername()); }; // Initialization $listenerProvider = new DefaultListenerProvider([ $listenerCalledForEveryEvent, $updateUserLastLoginDate, ]); $eventDispatcher = new EventDispatcher($listenerProvider); // Later in your code... $eventDispatcher->dispatch(new UserHasLoggedIn($user));
前面的示例将输出
A listener has been called with the event "App\Event\UserLoggedIn".
The user "johndoe" has logged in.
您可以通过查看示例目录来查看更多示例。
贡献
请参阅CONTRIBUTING文件。
许可证
本项目采用MIT许可证。有关完整的版权信息,请阅读许可证文件。