事件和监听是什么关系哦,迷迷糊糊的
这个是官方的文档,看了好几遍了没明白
protected $listen = [
'App\Events\OrderShipped' => [
'App\Listeners\SendShipmentNotification',
],
];
这个是事件
App\Events\OrderShipped
这个是监听
'App\Listeners\SendShipmentNotification',
他们的关系是怎么样子的啊,就是当事件发生后,这些监听才运行吗?
怎么样子单独注册事件系统,不做监听呢?
迷迷糊糊的啊, 有这样的文章看下么》?
个人一些理解。举个熟悉的场景吧。你发了一个微博动态 这个动作就是一个事件,谁触发的事件 ,你发的微博就是你触发的事件,你发了微博之后发生了什么?通知关注你的人你发了一条出轨的微博,谁监听了这个事件,关注你的人监听了这个事件,所以一旦你发了一条微博,关注你的粉丝就能马上知道你出轨了。为什么要以监听器这个方式呢,个人认为是为了解耦,你不再需要关注里面具体的实现。而只需要关注这个监听器本身是用来干什么的,就像上面说的,当前监听器就是为了当某个xxxf发送微博之后,推送消息给关注他的粉丝一条消息xxx发了xxx微博,但是我并不需要知道它里面到底是用什么推送的 短信 邮件?I don't care
实践才能让你理解。鲁迅说的 。
先理解观察者模式
事件与监听器 简单来说就是发生了什么事,谁来善后的问题。在laravel中注册事件,本质上相当于先登记联系方式,以备告知事件发生后,能够让laravel通知与该事件相关的人,建立事件与监听器之间的链路(映射关系)。至于是用哪种通信方式,比如打电话,还是写信之类,不需要你关心。你关心的是事件本身,即事件类就是对事件进行的描述,比如发生交通事故,事件类得记载有几人受伤,受伤情况等等这些,都是善后(监听器)要用到的,至于怎样用这些事件信息,你可以在监听器内自己干 ,也可找他人都没问题。事件监听目标在于分离代码,好比大号版的函数调用与定义相分离。在laravel中由于都分离了,要用的话,你得找个够彼此双方都能找到的中间人,laravel的中间人就是应用,它知道事件什么时候在哪里发生,你要做的就是记录事件信息(定义事件类),处理善后(定义监听器逻辑),告知laravel发生事件找谁( 注册事件监听器映射关系)。做完这些,再有类似事件发生,你就不用操心了,laravel已经知道整个事件处理流程,它可以自己去操作。
这个不难的,
写一个登录后发送邮件的逻辑,
把发送邮件部分的逻辑写在事件里,写一遍你就会了
上次是不你在我那个Service提问贴底下回帖了
监听的对象就是事件。
博客:尝试说一说事件的使用 尝试看看
比如JS的事件
当该元素被点击会依次执行前后注册的两个事件回调处理方法。就是酱紫。