Minor【 PHP框架】5.事件
2024-08-25 02:36:23
框架Github地址:github.com/Orlion/Minor
(如果觉得还不错给个star哦(^-^)V)
框架作者: Orlion
知乎:https://www.zhihu.com/people/orlion
Github: https://github.com/Orlion
5.1 事件Event
Minor的 Event
类提供一个简单的观察者实现,允许您在应用程序里订阅与监听事件。
5.1.1 订阅事件
首先创建一个事件类:
<?php namespace App\Event; use Minor\Event\Event; class DemoEvent extends Event
{
private $name; public function __construct($name)
{
$this->name = $name;
} public function setName($name)
{
$this->name = $name;
} public function getName()
{
return $this->name;
}
}
然后在配置文件中注册这个事件:
<?php
return $events = [
'App\Event\DemoEvent' => [
'App\Listener\DemoListener' => 'handle',
],
];
5.1.2 触发事件
Minor提供了一个事件管理类:Minor\Event\EventManger,通过调用该类的静态方法fire:EventManager::fire($event)就可以触发这个事件,例:
class FooController extends Controller
{
public function bar($productName)
{
$event = new DemoEvent('DemoEvent');
EventManager::fire($event);
...
}
}
5.2 监听器
当触发事件后事件管理器EventManager就会通过配置文件去触发监听器的制定方法。在5.1.1配置文件中我们配置了DemoEvent的监听器为App\Listener\DemoListener的handle方法,可以看一下这个类的实现:
<?php namespace App\Listener; use App\Event\DemoEvent;
use Minor\Event\Listener; class DemoListener extends Listener
{
public function handle(DemoEvent $event)
{
echo '[DemoListener] handle the event:[' . $event->getName() .'] success!<br/><br/>';
}
}
最新文章
- <;!--[if IE 9]>;....<;!end if-->;
- MVVM下listbox默认显示最后一行
- Animator Controller 继承关系
- oracle建库及plsql建表空间的用法
- Hibernate使用原生sql语句
- Android View事件传递机制
- mac系统奔溃无法启动时,如何备份重要资料
- 解决jqplot与jquery-ui导入必要包时的冲突
- session的使用
- /usr/bin/python^M: 解释器错误: 没有那个文件或目录
- 定期清空log文件
- 从零起步做到Linux运维经理, 你必须管好的23个细节
- poj 1679 判断MST是不是唯一的 (次小生成树)
- 洛谷.T21778.过年(线段树 扫描线)
- 20155234 exp4 恶意代码分析
- 认识电脑的开机流程与主引导分区(MBR)
- linux学习之用户的切换
- 20145302张薇《Java程序设计》实验二报告
- Springboot第一篇:框架了解与搭建
- TIA Portal 和 scout 之间的驱动器地址分配