适用场景:记录文章浏览量

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相关推荐

  1. 监听返回app_基于 Redis 消息队列实现 Laravel 事件监听及底层源码探究

    在 Laravel 中,除了使用 dispatch 辅助函数通过 Illuminate\Bus\Dispatcher 显式推送队列任务外,还可以通过事件监听的方式隐式进行队列任务推送,在这个场景下,事 ...

  2. kibana 喊话_使用Laravel事件创建实时喊话箱

    kibana 喊话 介绍 (Introduction) Laravel is undoubtedly a very powerful framework with a lot of batteries ...

  3. C#事件(event)解析

    原文:http://www.cnblogs.com/michaelxu/archive/2008/04/02/1134217.html 事件(event),这个词儿对于初学者来说,往往总是显得有些神秘 ...

  4. python 同步 事件 event 简介

    目录 1. Event 1.1 set() 1.2 wait() 1.3 clear() 1.4 is_set() 2. 协调线程同步 3. 一个更复杂的例子 事件 Event是另一种python多线 ...

  5. 秒杀多线程第六篇 经典线程同步 事件Event

    阅读本篇之前推荐阅读以下姊妹篇: <秒杀多线程第四篇 一个经典的多线程同步问题> <秒杀多线程第五篇 经典线程同步关键段CS> 上一篇中使用关键段来解决经典的多线程同步互斥问题 ...

  6. [数据库] Navicat for MySQL事件Event实现数据每日定期操作

    在我们操作数据库过程中,通常会遇到一些某个时间点操作数据库的问题,例如:         (1).每天凌晨12点对数据库进行定时备份,结算和汇总:         (2).每天凌晨2点删除数据库前三天 ...

  7. C#总结(二)事件Event 介绍总结

    最近在总结一些基础的东西,主要是学起来很难懂,但是在日常又有可能会经常用到的东西.前面介绍了 C# 的 AutoResetEvent的使用介绍, 这次介绍事件(event). 事件(event),对于 ...

  8. 线程queue、事件event及协程

    线程queue.事件event及协程 线程queue 多线程抢占资源,让其保持串行的两种方式: ​ 1.互斥锁 ​ 2.队列 线程队列分为以下三种: 1.Queue(先进先出) import queu ...

  9. 事件EVENT,WaitForSingleObject(),WaitForMultipleObjecct()和SignalObjectAndWait() 的使用(上)

    用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法.但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力.这时,只能考虑使 ...

最新文章

  1. C++创建二维数组和矩阵
  2. SSH 自动断开 解决方案
  3. Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法
  4. AutoLayout代码布局使用大全—一种全新的布局思想
  5. 苹果笔记本怎么找文件夹_如何在苹果笔记本中找出 “~/Library/Preferences/” 文件夹?...
  6. python中随机输入数字再排序
  7. 此计算机无法设置密码,电脑该怎么设置密码
  8. java和oc_Java和OC中的数据容器和数组
  9. 手动导入第三方工程/类库
  10. 软件测试,从零开始:测试新手入门必读
  11. 联想拯救者y7学计算机可以用吗,2018什么笔记本电脑好 联想拯救者y7000评测
  12. adf4351_配置MySQL以进行ADF开发
  13. BPF BTF 详细介绍
  14. 怎样正确安装Photoshop CS6破解版【图文教程】
  15. Rasa课程、Rasa培训、Rasa面试系列之Rasa幕后英雄系列-解决方案工程师Ben Quachtran
  16. 0004-1-模型好坏评判标准
  17. python的rs232通信_RS-232与Python的通信返回Gibberish
  18. 如何创建一个“个人微信公众号”
  19. 搞机:window10安装Linux子系统(WSL)及迁移到非系统盘
  20. Tuscany插件的安装

热门文章

  1. 【机器视觉】 dev_set_shape算子
  2. 【STM32】通用定时器(TIM2到TIM5)
  3. mysql 12142_php连接mysql的类mysql.class.php
  4. tl494组成的超声波发射电路_透彻分析利用TL494组成的逆变器电路
  5. mybatis里的日志动态代理
  6. Liunx中EOF的用法
  7. PHP中获取当前页面的完整URL
  8. MFC改变static text颜色
  9. 嵌入式Linux系统BSP的设计与实现
  10. mysql修改表结构大表_在线修改MySQL大表的表结构