美文网首页
Laravel 事件&监听器的使用

Laravel 事件&监听器的使用

作者: 会飞的兔子zy | 来源:发表于2019-07-23 11:38 被阅读0次

https://learnku.com/docs/laravel/5.8/events/3917

当用户注册时自动向用户发送邮件\发送短信\发送通知等

  • 一个事件可以包含多个监听器,用户注册的时候是一个事件,那么发送邮件\发送短信\发送通知应该分别有对应的监听器.
    -首先打开EventServiceProvider文件并编辑以下代码:
protected $listen = [
        Registered::class => [
            SendEmailVerificationNotification::class,
        ],
        'App\Events\Register'=>[
            'App\Listeners\SendMailTo',
            'App\Listeners\CreateLog',
        ]
    ];

绿色的部分便是我新注册的事件类,包含了两个监听器SendMailToCreateLog
接下来运行命令> php artisan event:generate
它将自动为我们创建事件和监听器所需要的文件
App\Events\Register(事件文件)
App\Listeners\SendMailTo(监听文件)
App\Listeners\CreateLog(监听文件)
接下来编辑Register.php
改造一下,让它在被实例化的时候传入我们需要的参数这里是$text

    public $text;
    public function __construct($text)
    {
        $this->text=$text;
    }

接下来编辑文件CreateLog.php

public function handle(Register $event)
    {
        Log::error($event->text);
    }

接下来编辑文件SendMailTo.php

public function handle(Register $event)
    {
        Log::alert($event->text);
    }

为了区分两个监听不同的工作,CreateLog向日志写入了一条错误消息.而SendMailTo写入了一个警告消息;
接下来就是使用事件的时候了,在你的控制器中写入如下代码启用事件

public function event()
    {
        $text='testName';
        event(new Register($text));
    }

定义好路由并且访问一下,然后打开日志查看监听器执行的结果吧~

[2019-07-23 10:59:40] local.ALERT: testName  
[2019-07-23 10:59:40] local.ERROR: testName 

一条警告消息和一条错误消息已经创建完成了.

相关文章

  • 事件

    事件 -- 监听器 -- 文章点击率 Laravel 5.3 事件 和 监听器 事件类 存放位置:一般在 app/...

  • 5.4Laravel事件

    事件 更多详细请参看laravel手册 事件/监听器 事件类存放位置:app/Event 目录中 监听器存放位置:...

  • Laravel 事件&监听器的使用

    https://learnku.com/docs/laravel/5.8/events/3917 当用户注册时自动...

  • Laravel 事件

    laravel 5.1.11 中 注册一个事件 Event 注册一个监听器 写监听事件 在Provides Ev...

  • laravel Event 事件使用

    Event的使用主要分为三步: ①注册事件监听器映射关系 ②定义监听器 ③触发事件 ①注册事件监听器映射关系 在a...

  • 事件委托

    使用事件委托技术能让你避免对特定的每个节点添加事件监听器;相反,事件监听器是被添加到它们的父元素上。事件监听器会分...

  • 专家推荐这次终于把Spring的监听器讲明白了

    (一)Spring中的监听器 监听器可以在使用过程时监听某些事件的发生,然后对这些事件做出响应处理。监听器对应用场...

  • laravel 事件/监听器 实例

    导语 上一篇文章实现了记录用户访问,设计上是有缺陷的,代码紧耦合在中间件。如果后续修改需求,不仅记录 ip、城市,...

  • laravel事件监听器队列

    上一篇文章说了,事件的作用是解耦,但是如果类似发短信或着邮件这样的业务,就会比较慢,这时就需要异步队列处理,把监听...

  • laravel 创建事件及事件监听器

    1:为什么要使用事件触发? 事件为应用功能模块的解耦提供了行之有效的方法,例如:一个用户注册完成之后要发邮件通...

网友评论

      本文标题:Laravel 事件&监听器的使用

      本文链接:https://www.haomeiwen.com/subject/odcolctx.html