首頁 > php框架 > YII > 主體

yii的事件是什麼

(*-*)浩
發布: 2019-11-14 16:42:35
原創
2551 人瀏覽過

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

相關標籤:
yii
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!