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
}
);
}
}
这样就可以在事件处理中增加用户注册后的操作