Rumah > rangka kerja php > YII > yii的事件是什么

yii的事件是什么

(*-*)浩
Lepaskan: 2019-11-14 16:42:35
asal
2729 orang telah melayarinya

yii的事件是什么

事件(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 或其子类的对象
}
Salin selepas log masuk

通过 $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) {
    //事件处理逻辑
});
Salin selepas log masuk

Atas ialah kandungan terperinci yii的事件是什么. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
yii
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan