这篇文章给大家分享的是有关yii中事件是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
事件(Events)
事件是可以将自定义代码“注入”到现有代码中的特定执行点。 附加自定义代码到某个事件,当这个事件被触发时,这些代码就会自动执行。
例如,邮件程序对象成功发出消息时可触发 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中事件是什么意思”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。