innmind/event-bus

此包已废弃且不再维护。未建议替代包。

事件分发库

4.1.0 2021-02-06 09:54 UTC

This package is auto-updated.

Last update: 2022-12-12 08:11:33 UTC


README

Build Status codecov Type Coverage

一个简单的库,用于将事件分发给监听器;其特殊性在于你不能对监听器进行排序,监听器不能修改事件,监听器不能阻止其他监听器被调用,并且事件必须是一个对象。

安装

composer require innmind/event-bus

示例

use function Innmind\EventBus\bootstrap;
use Innmind\Immutable\Map;

class MyEvent{}

$echo = function(MyEvent $event): void {
    echo 'foo';
};

$dispatch = bootstrap()['bus'](
    Map::of('string', 'callable')
        (MyEvent::class, $echo)
);

$dispatch(new MyEvent); // will print "foo"

所有监听器都必须是 可调用 的,并且可以监听特定类、父类或接口。