1:为什么要使用事件触发?
事件为应用功能模块的解耦提供了行之有效的方法,例如:一个用户注册完成之后要发邮件通知他注册成功,我们大可不必将注册的逻辑代码和发邮件的代码耦合到一起,而只需要在注册逻辑中触发发送邮件的事件既可,这样下次调用发邮件的时候不至于重写此段代码,既解除了代码的耦合度又增加了代码的可维护性。
2.怎么实现?
(1):laravel自带的 Providers\EventServiceProvider 为事件监听器注册提供了方便之所,其中的listen属性包含了触发的事件(key),以及事件监听器(value);
事件定义(2):终端执行 php artisan event:generate ,生成上图中listen中定义的事件以及监听器。此时项目目录下就会出现Events和Listeners目录,里面分别是laravel自动给我们创建的方法,
定义接收邮件人用户数据集
(3):在监听器中处理邮件发送功能,并没有真的发送邮件,只是简单做了dd()打印。所有的用户信息会通过事件注入到监听器的handle方法中。
监听器逻辑(4):最后触发事件。
网友评论