Laravel事件Event
适用场景:记录文章浏览量
php artisan make:event 事件名
示例:
php artisan make:event MyEvent
Laravel目录\app\Events已经生成MyEvent.php文件
<?phpnamespace App\Events;use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;class MyEvent extends Event
{use SerializesModels;/*** Create a new event instance.** @return void*/public function __construct(){//}/*** Get the channels the event should be broadcast on.** @return array*/public function broadcastOn(){return [];}
}
事件必须有监听者,我们先在\app\Providers目录下找到EventServiceProvider.php文件,该文件内有一个Events-Listeners数组来保存事件和监听者的映射关系。
protected $listen = ['App\Events\MyEvent' => ['App\Listeners\MyListener1','App\Listeners\MyListener2']
];
这里,我们让一个事件有两个监听者,使用artisan控制台自动生成php文件
php artisan event:generate
Laravel\app\Listeners目录下已经生成了MyListener1.php和MyListener2.php
问题来了,我们怎么触发这个事件?
这里借用我们上一篇博客说的Console,来测试这个事件,如果你对Console不熟,可以看http://www.cnblogs.com/sweng/p/6358919.html
对Check类中修改handle()函数,使用Event::fire(new MyEvent())触发事件,实际上是传入一个Event对象
<?phpnamespace App\Console\Commands;use Illuminate\Console\Command;//
use Illuminate\Support\Facades\Event;
use App\Events\MyEvent;class Check extends Command
{/*** The name and signature of the console command.** @var string*/protected $signature = 'check';/*** The console command description.** @var string*/protected $description = 'Command description';/*** Create a new command instance.** @return void*/public function __construct(){parent::__construct();}/*** Execute the console command.** @return mixed*/public function handle(){//echo 'checking...';Event::fire(new MyEvent());}
}
转载于:https://www.cnblogs.com/sweng/p/6358961.html
Laravel事件Event相关推荐
- 监听返回app_基于 Redis 消息队列实现 Laravel 事件监听及底层源码探究
在 Laravel 中,除了使用 dispatch 辅助函数通过 Illuminate\Bus\Dispatcher 显式推送队列任务外,还可以通过事件监听的方式隐式进行队列任务推送,在这个场景下,事 ...
- kibana 喊话_使用Laravel事件创建实时喊话箱
kibana 喊话 介绍 (Introduction) Laravel is undoubtedly a very powerful framework with a lot of batteries ...
- C#事件(event)解析
原文:http://www.cnblogs.com/michaelxu/archive/2008/04/02/1134217.html 事件(event),这个词儿对于初学者来说,往往总是显得有些神秘 ...
- python 同步 事件 event 简介
目录 1. Event 1.1 set() 1.2 wait() 1.3 clear() 1.4 is_set() 2. 协调线程同步 3. 一个更复杂的例子 事件 Event是另一种python多线 ...
- 秒杀多线程第六篇 经典线程同步 事件Event
阅读本篇之前推荐阅读以下姊妹篇: <秒杀多线程第四篇 一个经典的多线程同步问题> <秒杀多线程第五篇 经典线程同步关键段CS> 上一篇中使用关键段来解决经典的多线程同步互斥问题 ...
- [数据库] Navicat for MySQL事件Event实现数据每日定期操作
在我们操作数据库过程中,通常会遇到一些某个时间点操作数据库的问题,例如: (1).每天凌晨12点对数据库进行定时备份,结算和汇总: (2).每天凌晨2点删除数据库前三天 ...
- C#总结(二)事件Event 介绍总结
最近在总结一些基础的东西,主要是学起来很难懂,但是在日常又有可能会经常用到的东西.前面介绍了 C# 的 AutoResetEvent的使用介绍, 这次介绍事件(event). 事件(event),对于 ...
- 线程queue、事件event及协程
线程queue.事件event及协程 线程queue 多线程抢占资源,让其保持串行的两种方式: 1.互斥锁 2.队列 线程队列分为以下三种: 1.Queue(先进先出) import queu ...
- 事件EVENT,WaitForSingleObject(),WaitForMultipleObjecct()和SignalObjectAndWait() 的使用(上)
用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法.但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力.这时,只能考虑使 ...
最新文章
- C++创建二维数组和矩阵
- SSH 自动断开 解决方案
- Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法
- AutoLayout代码布局使用大全—一种全新的布局思想
- 苹果笔记本怎么找文件夹_如何在苹果笔记本中找出 “~/Library/Preferences/” 文件夹?...
- python中随机输入数字再排序
- 此计算机无法设置密码,电脑该怎么设置密码
- java和oc_Java和OC中的数据容器和数组
- 手动导入第三方工程/类库
- 软件测试,从零开始:测试新手入门必读
- 联想拯救者y7学计算机可以用吗,2018什么笔记本电脑好 联想拯救者y7000评测
- adf4351_配置MySQL以进行ADF开发
- BPF BTF 详细介绍
- 怎样正确安装Photoshop CS6破解版【图文教程】
- Rasa课程、Rasa培训、Rasa面试系列之Rasa幕后英雄系列-解决方案工程师Ben Quachtran
- 0004-1-模型好坏评判标准
- python的rs232通信_RS-232与Python的通信返回Gibberish
- 如何创建一个“个人微信公众号”
- 搞机:window10安装Linux子系统(WSL)及迁移到非系统盘
- Tuscany插件的安装