laravel 注册时触发发送激活邮件与监听事件的创建

我们希望用户在注册完成之后系统就会发送激活邮件,而不是让用户自己去请求激活邮件。我们可以通过 Laravel 的事件系统来完成这个功能,用户注册完成之后会触发一个 IlluminateAuthEventsRegistered 事件,我们可以创建一个这个事件的监听器(Listener)来发送邮件。

监听器是 Laravel 事件系统的重要组成部分,当一个事件被触发时,对应的监听器就会被执行,可以很方便地解耦代码。还可以把监听器配置成异步执行,比较适合一些不需要获得返回值并且耗时较长的任务,比如本章节的发送邮件。

Laravel 提供了 make:listener 命令来快速创建一个事件的监听器:

$ php artisan make:listener RegisteredListener

生成的监听器文件在 app/Listeners 目录下:

app/Listeners/RegisteredListener.php

user;
        // 调用 notify 发送通知
        $user->notify(new EmailVerificationNotification());
    }}

监听器创建完成之后还需要在 EventServiceProvider 中将事件和监听器关联起来才能生效:

app/Providers/EventServiceProvider.php

use App\Listeners\RegisteredListener;use Illuminate\Auth\Events\Registered;...
    protected $listen = [
        Registered::class => [
            RegisteredListener::class,
        ],
    ];...

这样就完成监听事件的创建与关联

读书破万卷,下笔如有神.

评论

返回顶部