无名 发表于 2022-5-8 17:03:01

【LSP】Laravel Event的分析和使用


http://cdn.u1.huluxia.com/g4/M01/64/72/rBAAdl90pfWACRoIAACt4WdlvYs032.jpg
Laravel Event的分析和使用
第一部分 概念解释 请自行查看观察者模式

第二部分 源码分析 (逻辑较长,不喜欢追代码可以直接看使用部分)

第三部分 使用

第一部分 解释
当一个用户阅读了一篇文章,可能需要给文章增加点击量,给阅读的用户增加积分,给文章作者发送通知等功能。对于以上操作,

我们可以使用laravel提供的事件机制进行良好的解耦。以上的用户阅读一篇文章,就是laravel中的一个事件,用户阅读文章后触

发的一系列操作就是此事件的监听者,他们会被逐个执行。实际上laravel的事件服务是观察者模式的一个实现,

触发了一个事件,就好象推倒了多米诺骨牌的地一块,剩下的操作就骄傲给提前摆好的阵型自行完成了。不同的是现实中我们很难让骨牌

停止倒塌, 但在laravel中我们可以很方便的停止事件的传播,即终止监听者的调用链。

第二部分 追源码
事件服务的注册http://cdn.u1.huluxia.com/g4/M01/64/72/rBAAdl90pfWAIdYvAAE2YaE_tbY835.jpg
事件服务的启动一(获取所有的事件和监听者)http://cdn.u1.huluxia.com/g4/M01/64/72/rBAAdl90pfaAOlTvAAOkGL9xp3w323.jpg
事件的触发http://cdn.u1.huluxia.com/g4/M01/64/72/rBAAdl90pfeAYfVEAAJavPMkyjM772.jpg
第三部分 使用
使用一        通过触发事件给监听者传参http://cdn.u1.huluxia.com/g4/M01/64/72/rBAAdl90pfmABAF1AAb8xJOPwpY898.jpg
以上用法没那么常见,这里只是简单演示下,细节还需各位自行尝试,常见使用还要各位仔细查阅文档。

至于监听者的异步化,只需要监听者实现ShouldQueue接口,然后简单配置就可以了。大家可以先行查看文档事件部分。
页: [1]
查看完整版本: 【LSP】Laravel Event的分析和使用