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');