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

原创 2016年08月29日 23:44:22

更多内容: 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';
});

版权声明:希望三心草的博客能够帮助到大家!更多内容: http://blog.yuhai.win

Yii 2.0 事件使用示例

为什么要使用事件?可能我们会有下面的业务需求,每当一个新用户注册成功会我们要给管理员发封邮件,还要有推送通知。 之前的代码可能是这样 if($model->save()){ // 注册成...
  • xmlife
  • xmlife
  • 2016年10月22日 09:46
  • 1637

yii2框架-yii2的事件(五)

yii2中使用事件,可以在特定的时间点,触发执行预先设定的一段代码,事件既是代码解耦的一种方式,也是设计业务流程的一种模式。现代软件中,事件无处不在,比如,你发了个微博,触发了一个事件,导致关注你的人...
  • u012979009
  • u012979009
  • 2016年05月25日 10:12
  • 3005

Yii 2.0 事件使用示例

为什么要使用事件?可能我们会有下面的业务需求,每当一个新用户注册成功会我们要给管理员发封邮件,还要有推送通知。 之前的代码可能是这样 if($model->save()){ // 注册成...
  • xmlife
  • xmlife
  • 2016年10月22日 09:46
  • 1637

清晰理解Yii的事件和行为

编程也许真的是个技术活,每次你被概念搞的蒙头转向,无从下手的时候你也许会这么想.但这也就是一会会的事,如果你在晚上喝着茶,咬着牙,僵硬着脖子,一页一页的点百度,然后在笔记上一句话一句话的记下你看到的每...
  • ltx06
  • ltx06
  • 2016年08月29日 09:16
  • 1560

yii2框架-yii2的事件(五)

yii2中使用事件,可以在特定的时间点,触发执行预先设定的一段代码,事件既是代码解耦的一种方式,也是设计业务流程的一种模式。现代软件中,事件无处不在,比如,你发了个微博,触发了一个事件,导致关注你的人...
  • u012979009
  • u012979009
  • 2016年05月25日 10:12
  • 3005

深入理解 Yii2.0 - 属性,事件,行为。

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

Yii2 使用Event -1 ,如何使用事件_@TERRY

1.首先需要 定义 事件传递的数据格式类:
  • lhorse003
  • lhorse003
  • 2017年05月07日 23:52
  • 134

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

一、Yii事件机制(Event): class TestController extends CController { //添加onclick事件         public function ...
  • aaaaabbc
  • aaaaabbc
  • 2013年09月11日 16:35
  • 2356

深入理解Yii2.0(1) 属性

http://www.digpage.com/property.html1、成员变量于属性的区别a、成员变量是一个“内”概念,反应的是内的结构构成。属性是一个外概念,反应类的逻辑意义,b、成员变量没有...
  • u012119576
  • u012119576
  • 2016年08月29日 07:08
  • 91

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

1、yii中的行为,其实是yii\base\Behaior 类的实例 2、Behavior 中行为的绑定与解除分别对应着attach() 和detach() 3、使用行为可以在不修改现有类的情况下,对...
  • u012119576
  • u012119576
  • 2016年08月31日 23:48
  • 129
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入理解Yii2.0 (2)事件Event
举报原因:
原因补充:

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