kornheiser / events
事件管理,处理
v1.1.0
2022-01-24 22:41 UTC
Requires
- php: ^8.0
This package is not auto-updated.
Last update: 2024-09-21 08:51:24 UTC
README
安装
composer require kornheiser/events
示例
创建您自己的事件
use Kornheiser\Event\Event; class NewMessageEvent implements Event { public function __construct( public string $text, public int $time, public string $senderMail ): void {} }
处理
简单处理器
use Kornheiser\Event\Handler; class NewMessageHandler implements Handler { public function onHandle(Event $ev): void { var_dump($ev->text, $ev->time, $ev->senderMail); } }
可调用处理器
use Kornheiser\Event\CallableHandler; $callableHandler = new CallableHandler(function(Event $ev) { echo $ev->senderMail . ": " . $ev->text; });
目标处理器
目标处理器与常规处理器不同,它只针对一次特定的事件,参见
use Kornheiser\Event\TargetedHandler; $handler1 = new TargetedHandler(NewMessageEvent::class, new NewMessageHandler()); $handler2 = new TargetedHandler(NewMessageEvent::class, $callableHandler);
结论
use Kornheiser\Event\EventManager; $invoker = new EventManager(); $invoker->addHandler($handler1); $invoker->addHandler($handler2); $invoker->call(new NewMessageEvent(text: "hello world", time: time(), senderMail: "some programmer"));