更多内容: 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相关推荐

  1. 深入理解YII2.0

    接触使用YII已经有几年光阴了,现在结合digpage.com(解析的很深入)这个网站的内容,会有变动,稍微记录一下. 一来帮助自己梳理一遍,二来做个一份备份入口.详细的还是请访问 (侵·删·联QQ2 ...

  2. 属性-Yii 基础-深入理解YII2.0(1.1)

    属性(Property) 属性用于表征类的状态,从访问的形式上看,属性与成员变量没有区别. 你能一眼看出 $object->foo 中的 foo 是成员变量还是属性么?显然不行. 但是,成员变量 ...

  3. 活动记录(AcitveReocrd)-Yii与数据库-(5.3)深入理解YII2.0

    AcitveReocrd事件和关联操作 ActiveRecord预定义的事件,都在 yiidbBaseActiveRecord 中进行了明确: abstract class BaseActiveRec ...

  4. 别名(Alias)-Yii 约定-深入理解YII2.0(2.2)

    别名(Alias) 可以将别名视为特殊的常量变量,他的作用在于避免将一些文件路径.URL以硬编码的方式 写入代码中,或者多处出现一长串的文件路径.URL. 预定义的别名 Yii中,别名以 @ 开头,以 ...

  5. Web应用Request-请求与响应-(4.4)深入理解YII2.0

    Web应用Request 前面 请求(Reqeust) 部分我们讲了用户请求的基础知识和命令行应用的Request,接下来继续讲Web应用的Request. Web应用Request由 yii\web ...

  6. Yii2.0学习资源

    Yii2.0中文开发文档 深入理解Yii2.0 转载于:https://www.cnblogs.com/fxrocky/p/5216060.html

  7. Yii2.0 RESTful API 之版本控制

    Yii2.0 RESTful API 之版本控制 之前我写过两篇关于 Yii2.0 RESTful API 如何搭建,以及 认证 等处理,但是没有涉及到版本管理,今天就来谈谈版本管理如何实现. 索性就 ...

  8. C#事件(event)解析

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

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

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

  10. 事件EVENT与waitforsingleobject的使用以及Mutex与Event的区别

    Mutex与Event控制互斥事件的使用详解最近写一程序,误用了Mutex的功能,错把Mutex当Event用了.[Mutex]使用Mutex的主要函数:CreateMutex.ReleaseMute ...

最新文章

  1. MySQL最新版8.0.21安装配置教程~
  2. IQ01/IQ02 Create/Change Material Serial Number BAPI
  3. Windows10安装TensorFlow GPU版本
  4. WDK tips (9.1) 同步机制与锁
  5. JPA和CMT –为什么捕获持久性异常不够?
  6. java 在数组末尾添加元素_Java快问快答:用 ArrayList 还是 LinkedList?
  7. 重构随笔——重构的原则
  8. Android Studio中Gradle使用详解
  9. 印象笔记不同步(EDAMSystemException: errorCode=INTERNAL_ERROR)
  10. 对于已经加入版本控制的文件,我们可以强制忽略文件git update-index --assume-unchanged local.properties...
  11. kotlin泛型_Kotlin泛型
  12. linux gvim字体大小配置,Gvim 字体大小设置
  13. Selenium2学习笔记——自动化环境搭建
  14. GHOST XP SP3 遐想网络 纯净驱动预览版 2.0
  15. python能干什么知乎-python能做什么知乎
  16. 【附源码】小白打造「传奇游戏」 (一)
  17. 基于SSH+MySQL+JSP的体育用品商城系统(附文档)
  18. strtolower
  19. 高校动态|研究生被录取后放导师鸽子,学校要上报教育部失信名单取消其推免资格
  20. 禅道 10.0.alpha 版本发布,全新的界面和交互体验

热门文章

  1. 进一步理解windows任务管理器
  2. 项目初期不同职位的人如何沟通?以及沟通的效率
  3. PDF怎么在线合并为一个文件
  4. 基于CentOS7安装CM
  5. hadoop学习笔记(五):java api 操作hdfs
  6. jpGraph学习——绘制3D饼形图
  7. Memcached CAS协议 通过版本号,防止多线程修改错误
  8. win7下装ubuntu双系统
  9. 会装64位solaris jdk1.6吗?
  10. python的logging日志