QQ扫一扫联系
Laravel 中的事件通常用于业务解耦,比如注册成功后发邮件,短信,赠送优惠券,可以拆分代码,一个事件可以对应多个监听器,如果注册成功后同时发邮件,短信的话,可以只执行一个事件,调用不同的监听器。
在 ModStart 中,如何快速的使用 Event 时间监听?
我们以用户注册事件为例,定义事件类 MemberUserRegisteredEvent
class MemberUserRegisteredEvent { public $memberUserId; public function __construct($memberUserId) { $this->memberUserId = $memberUserId; } }
在用户注册的地方触发用户注册事件(假设注册用户的 ID 为 5)
EventUtil::fire(new MemberUserRegisteredEvent(5));
在 ModuleServiceProvider 中监听事件
use Illuminate\Support\Facades\Event; class ModuleServiceProvider extends ServiceProvider { public function boot(Dispatcher $events) { Event ::listen( MemberUserRegisteredEvent::class, function (MemberUserRegisteredEvent $e) { // 用户注册了 // $e->memberUserId } ); } }
这样就可以在事件处理中增加用户注册后的操作