esoastor/event-manager

此包最新版本(0.0.7)没有提供许可证信息。

0.0.7 2023-04-02 14:04 UTC

This package is auto-updated.

Last update: 2024-09-17 22:28:57 UTC


README

创建监听器(实现 EventManager\Listener)创建事件(事件对象必须传递给监听器)

创建 EventManager\EventDispatcher

# prebuilded
$dispatcher = EventDispatcher::get();

# with custom provider
$provider = new EventManager\ListenerProvider(['success', 'error']);
$dispatcher = new EventDispacher($provider);

# add listeners
$dispatcher->addListeners('success', [
    MyListeners\SendMail::class,
    MyListeners\AddInfoToDatabase::class
]);

....

$event = MyEvents\NewUserRegistered($userInfo);

$dispatcher->dispatch('success', $event);

严格的事件名称

如果您只想使用先前声明的事件类型,可以使用严格名称模式。为此,您必须在使用它创建分发器之前自定义监听器提供者

$provider = new EventManager\ListenerProvider(['success', 'error']);
$provider->setEventTypesMode(EventManager\ListenerProvider::STRICT);

$dispatcher = new EventDispacher($provider);

通过 $dispatcher 添加更多事件名称

$dispatcher->addEventTypes(['start', 'finish]);