模式:大概是通过一个自定义的event,一个handler,还有一个binder,然后用来简化通知模型

生成自定义的event

./artisan make:event MyEvent

生成自定义的handler

./artisan handler:event MyEventHandler --event=MyEvent

然后在EventServiceProvider里面添加,可以添加多个,演示就只注册一个了

protected $listen = [
'App\Events\MyEvent' => [
'App\Handlers\Events\MyEventHandler',
],
];

如果你要多个handler,可以先在EventServiceProvider里面写好,然后命令

./artisan event:generate

触发event

$aaaa = 'sfsdfsdf';
$response = Event::fire(new App\Events\MyEvent($aaaa));

你会发现,在handler的handle方法被触发,不过看phpdoc,这个方法似乎是void返回,不知道这个response有什么用处

--------------------------------------------------------------------------------------------------------------------------------------------

注册event事件组

保留上面的MyEvent,别的不要了

注册我们的MyEventGroupHandler,这里演示一个event,subscribe方法必须定义

<?php namespace App;

class MyEventGroupHandler {

    /**
* Handle user login events.
*/
public function onMyEvent($event)
{
echo "MyEventGroupHandler";
dd($event);
} /**
* Register the listeners for the subscriber.
*
* @param Illuminate\Events\Dispatcher $events
* @return array
*/
public function subscribe($events)
{
$events->listen('App\Events\MyEvent', 'App\MyEventGroupHandler@onMyEvent');
}
}

动态注册监听event

$subscriber = new App\MyEventGroupHandler;
Event::subscribe($subscriber);

触发事件

$podcast = 'sfsdfsdf';
$response = Event::fire(new App\Events\MyEvent($podcast));

xdebug发现,MyEventGroupHandler的onMyEvent被断下

如果原来的myEventHandler也被注册,也能得到通知。

发现两种方式似乎没太大区别,一个静态注册,另一个动态注册,留着以后再说吧

laravel里面使用event的更多相关文章

  1. laravel job 与 event 的区别

    job 是异步执行.适合耗时长的任务.例如,批量发送邮件,短信. event 是在 request 的生命周期内执行.适合耗时短的操作.例如,更改数据字段状态. 但是, event 的好处是,可以复用 ...

  2. laravel中使用event

    https://www.cnblogs.com/ziyouchutuwenwu/p/4274539.html

  3. laravel Event执行顺序

    laravel一大特色就是event事件系统.一般首先要listen一个事件,随后fire那个事件,这时执行路径将会调用event handler,返回后继续执行.例如: Event::listen( ...

  4. Laravel事件Event

    适用场景:记录文章浏览量 php artisan make:event 事件名 示例: php artisan make:event MyEvent Laravel目录\app\Events已经生成M ...

  5. Laravel框架中的event事件操作

    有时候当我们单纯的看 Laravel 手册的时候会有一些疑惑,比如说系统服务下的授权和事件,这些功能服务的应用场景是什么,其实如果没有经历过一定的开发经验有这些疑惑是很正常的事情,但是当我们在工作中多 ...

  6. laravel框架中Job和事件event的解析

    本篇文章给大家带来的内容是关于laravel框架中Job和事件event的解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在做项目的时候,一直对Job和Event有个疑惑.感觉两 ...

  7. Laravel Event的分析和使用

    Laravel Event的分析和使用 第一部分 概念解释 请自行查看观察者模式 第二部分 源码分析 (逻辑较长,不喜欢追代码可以直接看使用部分) 第三部分 使用 第一部分 解释 当一个用户阅读了一篇 ...

  8. laravel event

    事件监听 方法一: web.php Event::listen('eloquent.created: App\post',function(){ dump('A post was created'); ...

  9. Laravel 5.3 登录注册底层实现详解

          每个控制器都使用 trait 来引入它们需要的方法 */ 用于处理用户登录认证 用于处理新用户注册 包含重置密码逻辑 用于处理重置密码邮件链接   认证需要的视图 包含了应用的基础布局文件 ...

随机推荐

  1. Java获取系统环境信息

    使用System.getProperty()方法获取JVM信息 public class TestSystemGetProperty { public static void main(String[ ...

  2. 017——数组(十七) asort ksort rsort arsort krsort

    <?php /** * 数组 asort ksort rsort arsort krsort */ //asort()对数组按值排序,保留键名: /*$arr=array( 'bbs_url'= ...

  3. 【河南省第十一届ACM大学生程序设计竞赛-D】.求XF+闭包

       如何设计一个好的数据库不仅仅是一个理论研究问题,也是一个实际应用问题.在关系数据库中不满足规范化理论的数据库设计会存在冗余.插入异常.删除异常等现象. 设R(U)是一个关系模式,U={ A1,A ...

  4. hdu 6113 度度熊的01世界(结构体的赋值问题)

    题目大意: 输入n*m的字符串矩形,判断里面的图形是1还是0,还是什么都不是 注意:结构体中放赋值函数,结构体仍旧能定义的写法 #include <iostream> #include&l ...

  5. week13《java程序设计》第13次作业总结

    week13<java程序设计>第13次作业总结 1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 答: 1.IP与端口:ip和域名相对应,可找 ...

  6. 在一个机器上获取大量PublicKey后的私钥恢复方法

    渗透测试过程中,有时候会在某个未授权访问漏洞中获取authorized_keys文件,里面有大量账户用于免密登录的PublicKey,这个时候如何进行下一步渗透? 可以考虑rsa碰撞的方式,找到公用p ...

  7. 在初次安vs2008时设置的为C#现在怎么将其改为其他类型的界面

    如将C#改成C++, 工具 -> 导入和导出设置 -> 重置所有设置 -> 否,仅重置设置,从而覆盖我的当前设置 -> 重新选一个设置 -> 完成 选择完毕后,如新建MF ...

  8. StringUtils.isEmpty和StringUtils.isBlank的区别

    两个方法都是判断字符是否为空的.前者是要求没有任何字符,即str==null 或 str.length()==0:后者要求是空白字符,即无意义字符.其实isBlank判断的空字符是包括了isEmpty ...

  9. No module named 'cv2'出错

    当在python 3.6里运行课程里的强化学习程序时,出现如下出错,怎么办呢? >>> = RESTART: D:\work\csdn\tensorflow\DeepLearning ...

  10. linux vim 命令使用

    基本上vim可以分为三种状态,分别是命令模式(command mode).插入模式(Insert mode)和底行模式(last line mode) 模式切换方法 在命令模式输入“i”,进入插入模式 ...