next/event
最新稳定版本:0.2.0
Composer 安装命令:
composer require next/event
包简介
Event based on the PSR-14 specification
README 文档
README
如何使用
创建监听器
use Next\Event\Contract\EventListenerInterface; class UserStatusListener implements EventListenerInterface { /** * 返回该监听器监听的事件 * @return string[] */ public function listen():array { return [ \App\Events\UserRegistered::class, ]; } /** * 触发事件后的处理 * @param object $event */ public function process(object $event): void { $event->user = false; } /** * 监听器优先级 * 如果一个事件被多个监听器监听,那么执行顺序可以通过该方法调整 * 优先级数字越大,优先级越高,越先执行 * @return int */ public function getPriority(): int { return 0; } }
如果你不需要调整优先级,可以直接继承
Next\Event\EventListener类
需要创建一个事件类
class UserRegistered { public $user; public function __construct($user) { $this->user = $user; } }
实例化ListenerProvider, 使用addListener添加监听器
$listenerProvider = new ListenerProvider(); $listenerProvider->addListener(new UserStatusListener());
实例化调度器,给构造函数传入ListenerProvider实例
$dispatcher = new \Next\Event\EventDispatcher($listenerProvider);
事件调度
$user = User::find(1); $event = $dispatcher->dispatch(new UserRegistered($user));
可终止事件
事件实现
StoppableEventInterface接口中的isPropagationStopped方法,并且返回true,则不会触发该事件之后的事件
class UserRegistered implements StoppableEventInterface { public $user; public function __construct($user) { $this->user = $user; } public function isPropagationStopped() : bool { return true; } }
统计信息
- 总下载量: 31
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2023-10-31