dariorieke / event-dispatcher
该包最新版本(dev-master)没有提供许可信息。
实现 PSR-14 接口的事件调度器
dev-master
2022-02-03 17:00 UTC
This package is auto-updated.
Last update: 2024-08-29 05:30:59 UTC
README
提供一个事件调度器的 PSR-14 实现。
安装
使用 composer 安装
"require": {
"dariorieke/event-dispatcher": "dev-master"
}
运行测试
使用以下命令运行测试
./vendor/bin/phpunit .\tests
使用方法
注册监听器
通过 addListener
注册的监听器在已注册的监听器提供者之前被调用。监听器可以附加到事件名称上。
use DarioRieke\EventDispatcher\EventDispatcher;
$dispatcher = new EventDispatcher();
$dispatcher->addListener('myEvent', function($event) {
//do stuff here...
});
注册监听器提供者
监听器提供者的调用顺序与它们附加到事件调度器的顺序相同,但总是发生在通过 addListener
注册的监听器之后。有关更多信息,请参阅 PSR-14 ListenerProviderInterface
。
$dispatcher->addListenerProvider($psr14ListenerProvider);
调度事件
您可以调度任何对象作为事件。如果您传递 StoppableEventInterface
实例,则可以停止事件传播到其他监听器。有关更多信息,请参阅 PSR-14 StoppableEventInterface
。
$dispatcher->dispatch($myEventObject);
如果在调度事件时没有提供事件名称,则使用类名。同一类的实例被视为同一事件,除非在调度时明确设置事件名称。
$dispatcher->dispatch($myEventObject, 'customEventName');