深入理解Yii2.0 (2)事件Event

原创 2016年08月29日 23:44:22
参考地址:
    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 - 属性,事件,行为。

前言本博客基于 深入理解Yii2.0.并且参考Yii2.0 官方文档,加上自己使用Yii2.0的一些总结和理解。Yii 2.0Yii 是一个高性能,基于组件的 PHP 框架。 为什么要用Yii 2....

Yii框架的事件(Event)和行为(Behavior)

一、Yii事件机制(Event): class TestController extends CController { //添加onclick事件         public function ...

深入理解Yii2.0 (3)行为(Behavior)

1、yii中的行为,其实是yii\base\Behaior 类的实例 2、Behavior 中行为的绑定与解除分别对应着attach() 和detach() 3、使用行为可以在不修改现有类的情况下,对...

yii2.0 事件

事件(Event) 使用事件,可以在特定的时点,触发执行预先设定的一段代码,事件既是代码解耦的一种方式,也是设计业务流程的一种模式。现代软件中,事件无处不在,比如,你发了个微博,触发了一个事件,导致...

深入理解Yii2.0-20141108版

  • 2014-11-08 21:55
  • 1.66MB
  • 下载

深入理解Yii2.0-20141110版

  • 2014-11-11 07:14
  • 1.93MB
  • 下载

WIN7上快速架设一个可以用于Yii2开发调试的PHP运行环境 [ 2.0 版本 ]

如果厌倦了配置那些重量级的win+mysql+php集成环境,用本文的方法可以轻快的建立一个简单、有效、路径无关的Yii2调试环境。献给Yiiers,PHP是最好的web语言。^_^ 一、简介 ...

深入理解Yii2.0-20141005版

  • 2014-10-05 21:52
  • 1.68MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)