• 技术文章 >php框架 >YII

    yii的事件是什么

    (*-*)浩(*-*)浩2019-11-14 16:42:35原创666

    事件(Events)

    事件是可以将自定义代码“注入”到现有代码中的特定执行点。 附加自定义代码到某个事件,当这个事件被触发时,这些代码就会自动执行。 (推荐学习:yii教程

    例如,邮件程序对象成功发出消息时可触发 messageSent 事件。如想追踪成功发送的消息,可以附加相应追踪代码到 messageSent 事件。

    Yii 引入了名为 yii\base\Component 的基类以支持事件。 如果一个类需要触发事件就应该继承 yii\base\Component 或其子类。

    事件处理器(Event Handlers)

    事件处理器是一个PHP 回调函数, 当它所附加到的事件被触发时它就会执行。可以使用以下回调函数之一:

    字符串形式指定的 PHP 全局函数,如 'trim' ;

    对象名和方法名数组形式指定的对象方法,如 [$object, $method] ;

    类名和方法名数组形式指定的静态类方法,如 [$class, $method] ;

    匿名函数,如 function ($event) { ... } 。

    事件处理器的格式是:

    function ($event) {
        // $event 是 yii\base\Event 或其子类的对象
    }

    通过 $event 参数,事件处理器就获得了以下有关事件的信息:

    event name:事件名

    event sender:调用 trigger() 方法的对象

    custom data:附加事件处理器时传入的数据,默认为空,后文详述

    附加事件处理器(Attaching Event Handlers)

    调用 yii\base\Component::on() 方法来附加处理器到事件上。如:

    $foo = new Foo;
    
    // 处理器是全局函数
    $foo->on(Foo::EVENT_HELLO, 'function_name');
    
    // 处理器是对象方法
    $foo->on(Foo::EVENT_HELLO, [$object, 'methodName']);
    
    // 处理器是静态类方法
    $foo->on(Foo::EVENT_HELLO, ['app\components\Bar', 'methodName']);
    
    // 处理器是匿名函数
    $foo->on(Foo::EVENT_HELLO, function ($event) {
        //事件处理逻辑
    });

    以上就是yii的事件是什么的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:yii
    上一篇:yii框架是什么 下一篇:yii和tp的区别是什么?
    线上培训班

    相关文章推荐

    • yii2怎么用uploadify• yii框架gii用的多吗• yii框架的优点有哪些• yii怎么设置layouts

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网