深入理解Yii2.0 (2)事件Event
更多内容: http://blog.yuhai.win
参考地址:http://www.digpage.com/event.html
1、 yii\base\Event 封装了与时间相关的有关数据并提供了一些功能函数作为辅助
class Event extends Object
{public $name; // 事件名public $sender; // 事件发布者,通常是调用了 trigger() 的对象或类。public $handled = false; // 是否终止事件的后续处理public $data; // 事件相关数据private static $_events = [];public static function on($class, $name, $handler, $data = null,$append = true){// ... ...// 用于绑定事件handler}public static function off($class, $name, $handler = null){// ... ...// 用于取消事件handler绑定}public static function hasHandlers($class, $name){// ... ...// 用于判断是否有相应的handler与事件对应}public static function trigger($class, $name, $event = null){// ... ...// 用于触发事件}
}
2、时间handler
所谓时间handler就是时间处理程序,负责时间触发后怎么办的问题,从本质上来说,一个事件handler就是一段PHP代码,即一个PHP函数。
3、事件的绑定和解除
a、yii\base\Component:: on() 就是用来绑定的
b、yii\base\Component:: off() 就是用来解除的
$person = new Person;// 使用PHP全局函数作为handler来进行绑定
$person->on(Person::EVENT_GREET, 'person_say_hello');// 使用对象$obj的成员函数say_hello来进行绑定
$person->on(Person::EVENT_GREET, [$obj, 'say_hello']);// 使用类Greet的静态成员函数say_hello进行绑定
$person->on(Person::EVENT_GREET, ['app\helper\Greet', 'say_hello']);// 使用匿名函数
$person->on(Person::EVENT_GREET, function ($event) {echo 'Hello';
});
深入理解Yii2.0 (2)事件Event相关推荐
- 深入理解YII2.0
接触使用YII已经有几年光阴了,现在结合digpage.com(解析的很深入)这个网站的内容,会有变动,稍微记录一下. 一来帮助自己梳理一遍,二来做个一份备份入口.详细的还是请访问 (侵·删·联QQ2 ...
- 属性-Yii 基础-深入理解YII2.0(1.1)
属性(Property) 属性用于表征类的状态,从访问的形式上看,属性与成员变量没有区别. 你能一眼看出 $object->foo 中的 foo 是成员变量还是属性么?显然不行. 但是,成员变量 ...
- 活动记录(AcitveReocrd)-Yii与数据库-(5.3)深入理解YII2.0
AcitveReocrd事件和关联操作 ActiveRecord预定义的事件,都在 yiidbBaseActiveRecord 中进行了明确: abstract class BaseActiveRec ...
- 别名(Alias)-Yii 约定-深入理解YII2.0(2.2)
别名(Alias) 可以将别名视为特殊的常量变量,他的作用在于避免将一些文件路径.URL以硬编码的方式 写入代码中,或者多处出现一长串的文件路径.URL. 预定义的别名 Yii中,别名以 @ 开头,以 ...
- Web应用Request-请求与响应-(4.4)深入理解YII2.0
Web应用Request 前面 请求(Reqeust) 部分我们讲了用户请求的基础知识和命令行应用的Request,接下来继续讲Web应用的Request. Web应用Request由 yii\web ...
- Yii2.0学习资源
Yii2.0中文开发文档 深入理解Yii2.0 转载于:https://www.cnblogs.com/fxrocky/p/5216060.html
- Yii2.0 RESTful API 之版本控制
Yii2.0 RESTful API 之版本控制 之前我写过两篇关于 Yii2.0 RESTful API 如何搭建,以及 认证 等处理,但是没有涉及到版本管理,今天就来谈谈版本管理如何实现. 索性就 ...
- C#事件(event)解析
原文:http://www.cnblogs.com/michaelxu/archive/2008/04/02/1134217.html 事件(event),这个词儿对于初学者来说,往往总是显得有些神秘 ...
- 事件EVENT,WaitForSingleObject(),WaitForMultipleObjecct()和SignalObjectAndWait() 的使用(上)
用户模式的线程同步机制效率高,如果需要考虑线程同步问题,应该首先考虑用户模式的线程同步方法.但是,用户模式的线程同步有限制,对于多个进程之间的线程同步,用户模式的线程同步方法无能为力.这时,只能考虑使 ...
- 事件EVENT与waitforsingleobject的使用以及Mutex与Event的区别
Mutex与Event控制互斥事件的使用详解最近写一程序,误用了Mutex的功能,错把Mutex当Event用了.[Mutex]使用Mutex的主要函数:CreateMutex.ReleaseMute ...
最新文章
- MySQL最新版8.0.21安装配置教程~
- IQ01/IQ02 Create/Change Material Serial Number BAPI
- Windows10安装TensorFlow GPU版本
- WDK tips (9.1) 同步机制与锁
- JPA和CMT –为什么捕获持久性异常不够?
- java 在数组末尾添加元素_Java快问快答:用 ArrayList 还是 LinkedList?
- 重构随笔——重构的原则
- Android Studio中Gradle使用详解
- 印象笔记不同步(EDAMSystemException: errorCode=INTERNAL_ERROR)
- 对于已经加入版本控制的文件,我们可以强制忽略文件git update-index --assume-unchanged local.properties...
- kotlin泛型_Kotlin泛型
- linux gvim字体大小配置,Gvim 字体大小设置
- Selenium2学习笔记——自动化环境搭建
- GHOST XP SP3 遐想网络 纯净驱动预览版 2.0
- python能干什么知乎-python能做什么知乎
- 【附源码】小白打造「传奇游戏」 (一)
- 基于SSH+MySQL+JSP的体育用品商城系统(附文档)
- strtolower
- 高校动态|研究生被录取后放导师鸽子,学校要上报教育部失信名单取消其推免资格
- 禅道 10.0.alpha 版本发布,全新的界面和交互体验