laravel框架 - 事件与监听器

news/2024/11/3 4:29:11/

一,绑定事件与监听器

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.ppmy.cn/news/1116471.html

相关文章

QT--day3

2> 完成文本编辑器的保存工作 widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }void Widget::on_fontbtn_cl…

EM算法和VAE的学习笔记

文章目录 摘要EM算法流程EM算法对GMM的参数估计EM算法的证明EM算法的另一种理解VAE参考文献 摘要 这是我学习EM算法(Expectation-Maximization Algorithm)和VAE(Variational Auto-Encoder)的学习笔记,首先总结了EM算法…

删除文件夹提示已在另一程序打开,如何强制删除

该文件里的应用程序可能在占用端口,所以无法直接删除。 解决办法: 打开要删除的文件夹复制上面的路径 同时按CtrlShiftEsc打开任务管理器 点击性能找到下方的资源监视器 点击CPU 在搜索句柄里粘贴上面复制的路径 找到搜索出来的文件右键结束进程&a…

蓝桥杯嵌入式创建第一个工程(点亮led灯)

蓝桥杯嵌入式创建第一个工程(点亮led灯) 一.keil导入stm32G431RX板级芯片包1.1 下载板级芯片包1.2 导入芯片包1.2.1 我们首先打开keil 点击Pack installer,如图**1.2.2 然后选中file→import 如图**1.2.3 选择我们下好的芯片包即可1.2.4 确定安装成功 二…

Java手写Trie树和Trie树应用拓展案例

Java手写Trie树和Trie树应用拓展案例 1. 算法思维导图 以下是使用mermaid代码表示的Trie树的实现原理: #mermaid-svg-5twy24X7Wqbhyulb {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-5twy24X7Wqbhyul…

JUC并发工具使用与详情(CountDownLatch、CyclicBarrier、Semaphore、Exchanger)

JUC并发工具 一、CountDownLatch应用&源码分析 1.1 CountDownLatch介绍 CountDownLatch就是JUC包下的一个工具,整个工具最核心的功能就是计数器 如果有三个业务需要并行处理,并且需要知道三个业务全部都处理完毕了 需要一个并发安全的计数器来操…

VR全景需要加盟吗?简述VR全景加盟的意义

对于一个刚开始了解VR全景行业的新人来说,VR全景不是有软件、有设备、会拍摄就行了吗?为什么还要找全景平台进行加盟呢?VR全景加盟的作用又是什么呢?那么,我们就不得不多问几个问题了,例如不加盟的话&#…

深度剖析贪心算法:原理、优势与实战

概述 贪心算法是一种通过每一步的局部最优选择来寻找整体最优解的方法。在每个步骤中,贪心算法选择当前状态下的最佳选项,而不考虑未来可能的影响。尽管它不能保证一定能找到全局最优解,但贪心算法通常简单且高效,适用于许多实际…