当前位置: 首页 > news >正文

laravel框架 - 事件与监听器

一,绑定事件与监听器

app\Providers下的EventServiceProvider.php中添加我们定义的事件与监听器

    protected $listen = [Registered::class => [SendEmailVerificationNotification::class,],'App\ebvent\RegisterMessage'=>[//事件'App\listeners\SendMessage'//监听器],];

二,生成事件 & 监听器

使用 event:generate 命令即可。这个命令会生成在 EventServiceProvider 中列出的所有事件和监听器。当然,已经存在的事件和监听器将保持不变:

php artisan event:generate

三,编写业务逻辑

在App\ebvent\目录下,打开你新创建的事件文件 RegisterMessage.php
    public $teacher;/*** Create a new event instance.** @return void*/public function __construct($teacher){$this->teacher = $teacher;//}

 在App\listeners\目录下,打开你新创建的监听器文件 SendMessage.php

    /*** Handle the event.** @param  \App\ebvent\RegisterMessage  $event* @return void*/public function handle(RegisterMessage $event){Cache::add('name','张三');//}

四,在路由中使用事件

Route::get('listeners', function () {$user = ['name' => 'peter'];event(new \App\Event\RegisterMessage($user));return 'ok';
});

当我们访问/listeners路由时,会把$user变量传给事件,会执行构造方法,同时监听器也会执行handle方法

storage目录下可以看到两个缓存文件,说明事件和监听器起作用了

实例:

实现 用户登录 & 登出系统 分别记录 登录 登出日志

http://www.lryc.cn/news/176399.html

相关文章:

  • Android存储权限完美适配(Android11及以上适配)
  • 国产手机芯片4G方案_紫光展锐安卓核心板虎贲4G智能模块方案定制
  • 异步通讯技术之RabbitMQ
  • tcp/ip协议2实现的插图,数据结构
  • Redis学习 - 了解Redis(三)
  • API接口自动化测试框架
  • MySQL学习笔记1
  • 基于PYQT5的GUI开发系列教程【一】框架安装和基础环境配置
  • 【漏洞复现】Jeecg-Boot SQL注入漏洞(CVE-2023-34659)
  • 【MySQL基础 | 中秋特辑】多表查询详细总结
  • 21天学会C++:Day14----模板
  • MQ - 32 基础功能:消息查询的设计
  • c语言练习66:模拟实现offsetof
  • 数据库缓存服务器集群 redis集群
  • [密码学入门]仿射密码(Affine)
  • 【Maven】SpringBoot多模块项目利用reversion占位符,进行版本管理.打包时版本号不能识别问题
  • Vue watch实时计算器
  • Java中的super关键字
  • MySQL数据库入门到精通6--进阶篇(锁)
  • js的继承
  • HONEYWELLL 05701-A-0325 控制脉冲模块
  • Qt扩展-QCustomPlot 简介及配置
  • python教程:selenium WebDriver 中的几种等待--sleep(),implicitly_wait(),WebDriverWait()
  • 从裸机开始安装操作系统
  • redhat 6.1 测试环境安装 yum
  • WARNING:tensorflow:Your input ran out of data; interrupting training. 解决方法
  • ChunJun(OldNameIsFlinkX)
  • MySQL的时间差函数、日期转换计算函数
  • 【神印王座】悲啸洞穴之物揭晓,圣采儿差点被骗,幸好龙皓晨聪明
  • 性能测试之使用Jemeter对HTTP接口压测