innmind / event-bus
此包已废弃且不再维护。未建议替代包。
事件分发库
4.1.0
2021-02-06 09:54 UTC
Requires
- php: ~7.4|~8.0
- innmind/immutable: ~3.0
Requires (Dev)
- innmind/coding-standard: ^1.1
- phpunit/phpunit: ~9.0
- vimeo/psalm: ~4.1
README
一个简单的库,用于将事件分发给监听器;其特殊性在于你不能对监听器进行排序,监听器不能修改事件,监听器不能阻止其他监听器被调用,并且事件必须是一个对象。
安装
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"
所有监听器都必须是 可调用
的,并且可以监听特定类、父类或接口。