Laravel如何实现事件和监听器?(Event & Listener实战)

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

Laravel如何实现事件和监听器?(Event & Listener实战)-第1张图片-佛山资讯网

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

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~