Laravel 5.3 事件 和 监听器
- 事件类 存放位置:一般在 app/Events 目录中
- 监听器 存放在 一般 app/Listeners 目录中
- 事件 和 监听器 之间的关系:单个事件可以有多个监听器,这些监听器之间并不相互依赖。
注册 事件 / 监听器:(服务提供者)
- 在服务提供者中 EventServiceProvider.php 中注册 事件/监听器;
listen中注册多个事件。
生成 事件/监听器类:
-
php artisan event:generate
该命令将会生成罗列在 EventServiceProvider 中的所有事件和监听器。(当然存在的事件和监听器不会被重复创建)
该命令,不会生成在 boot 方法中手动注册的事件和控制器。 - 手动注册事件:(不推荐使用)
除了在callback);存在错误,不能注册成功。
手动注册事件:
关于手册上的使用闭包注册事件好像是不支持的。(关于手动注册事件,使用着一种就行,其他就算了)
5、事件监听器队列:
监听器加入队列在这里很简单(参考手册),但是需要注意,监听器一旦加入队列,就需要开启以一个队列监听器才会被执行(可能在调试的时候监听器内容不被执行的情况等)。
触发事件/监听器:
使用辅助函数 event() 方法,该方法需要一个事件对象。(具体 参考手册)
事件 订阅者:
- 那些在类本身中订阅多个事件的类,通过事件订阅者你可以在单个类中定义多个事件处理器。
网友评论