首頁 >php框架 >YII >yii的事件是什麼

yii的事件是什麼

(*-*)浩
(*-*)浩原創
2019-11-14 16:42:352723瀏覽

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 或其子类的对象
}

透過$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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:yii框架是什麼下一篇:yii框架是什麼