Laravel事件监听
Laravel Event & Listener 事件监听机制,让开发者不光是可以把代码组织得更加有条理的手段,而且也是对现实社会运行规则的高度抽象化映射,我们的现实社会本来也是这样,我们监控事物的变化,并对变化做出反应,让事物的发展按照我们的预期发展。当现实映射到代码逻辑中时,事件及其处理逻辑通常是分开的,毕竟不是所有的事件我们都需要马上进行响应处理。结合队列,我们可以把事件的监听和处理的工作流程做到更加完美。
使用案例:
监听log日志文件大小变化
用户登录:记录用户登录次数、记录访问相关信息
实现事件监听步骤:
1、创建事件:event
2、创建监听:listener
3、绑定事件与监听
4、触发事件
一、手动创建事件与监听
1、创建登录事件:event
app/Events/UserLogin.php
php artisan make:event UserLogin//获取用户信息实例
public function __construct(User $user){
$this->user = $user;}
2、创建用户登录邮件发送监听,同时绑定UserLogin登录事件:listener
app/Listeners/EmailAdminUserLogin.php
php artisan make:listener EmailAdminUserLogin --event=UserLogin //日志打印登录用户信息public function handle(UserLogin $event)
{// dd($event);
//日志打印登录用户信息
Log::info($event->user->name . '已经登录');
}
3、注册事件与监听绑定关系
一个事件可以对应多个监听
app/Providers/EventServiceProvider.php
protected $listen = [
'App\Events\UserLogin' => [
'App\Listeners\EmailAdminUserLogin',
],];
4、在用户登录时候触发事件
app/Http/Controllers/Auth/LoginController.php
//覆写AuthenticatesUsers类的authenticated方法protected function authenticated(Request $request, $user){
//触发事件
event(new UserLogin($user));}
二、快速生成事件与监听
这里会根据app/Providers/EventServiceProvider.php中属性listen生成对应的事件与监听
php artisan event:generate
本文出至:学新通
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通
- 本文地址: https://www.swvq.com/boutique/detail/15807
- 联系方式: luke.wu@swvq.com
- 来源链接: www.php.cn/phpkj/laravel/490756.html
系列文章
更多
同类精品
更多
精彩评论
-
docker hub 进不去怎么办
PHP中文网 03-15 -
2023年最新的28道PHP面试题附答案
PHP中文网 03-27 -
windows上查看nginx是否启动
PHP中文网 04-19 -
推荐五款xml编辑工具
PHP中文网 03-04 -
navicat怎样清除注册表
PHP中文网 04-05 -
ChatGPT应用通过Axios+EventSource使用GPT3.5 API
uWydnA 03-13 -
强力推荐10款好看使用的Bootstrap后台管理系统模板
PHP中文网 03-09 -
vscode怎么调整代码大小两种方法
PHP中文网 03-11 -
navicat连接sqlserver数据库
PHP中文网 04-03 -
navicat导入csv文件
PHP中文网 03-30