Laravel事件与监听器机制用于解耦业务逻辑,通过定义事件类、创建监听器、注册关系及触发事件四步实现;事件为数据载体,监听器处理逻辑,需在EventServiceProvider中配置映射,并确保EventServiceProvider已注册。

Laravel 的事件与监听器机制,是解耦业务逻辑、响应系统动作的常用方式。它不是“必须用”,但当某个操作需要触发多个后续行为(比如用户注册后发邮件、写日志、通知管理员),用事件+监听器比硬编码更清晰、更易维护。
1. 定义事件类
事件本质是一个普通 PHP 类,通常不带逻辑,只负责携带数据。运行命令生成:
php artisan make:event UserRegistered生成的 UserRegistered.php 默认在 app/Events 目录下。你可以往里面加一个 public 属性,比如:
class UserRegistered
{
public $user;
public function __construct(User $user)
{
$this->user = $user;
}
}登录后复制
2. 创建监听器
监听器是真正干活的地方。生成命令:
php artisan make:listener SendWelcomeEmail --event=UserRegistered生成的监听器位于 app/Listeners,Laravel 会自动把事件实例注入到 handle 方法中:
class SendWelcomeEmail
{
public function handle(UserRegistered $event)
{
// $event->user 就是注册的用户对象
Mail::to($event->user)->send(new WelcomeMail($event->user));
}
}登录后复制
3. 注册事件与监听器关系
打开 app/Providers/EventServiceProvider.php,在 $listen 数组里配对:
标签: php laravel 编码 app ai 用户注册 red
还木有评论哦,快来抢沙发吧~