ホームページ >PHPフレームワーク >YII >yiiのイベントとは何ですか

yiiのイベントとは何ですか

(*-*)浩
(*-*)浩オリジナル
2019-11-14 16:42:352723ブラウズ

yiiのイベントとは何ですか

イベント

イベントを使用すると、カスタム コードを特定の実行に「挿入」できます。既存のコード内のポイント。 カスタム コードをイベントにアタッチすると、イベントがトリガーされたときにコードが自動的に実行されます。 (推奨学習: yiitutorial)

たとえば、メール プログラム オブジェクトがメッセージの送信に成功すると、messageSent イベントをトリガーできます。正常に送信されたメッセージを追跡したい場合は、対応する追跡コードを messageSent イベントに添付できます。

Yii では、イベントをサポートするために yii\base\Component という名前の基本クラスが導入されています。 クラスがイベントをトリガーする必要がある場合、クラスは yii\base\Component またはそのサブクラスを継承する必要があります。

イベント ハンドラー

イベント ハンドラーは、関連付けられたイベントがトリガーされたときに実行される PHP コールバック関数です。次のコールバック関数のいずれかを使用できます:

文字列形式で指定された PHP グローバル関数 (「trim」など);

オブジェクト メソッドは、オブジェクト名とメソッド名の配列形式で指定されます。 as [$object, $method] ;

クラス名とメソッド名の配列の形式で指定された静的クラス メソッド ([$class, $method] など);

匿名関数、関数 ($event) { ... } など。

イベント ハンドラーの形式は次のとおりです:

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

イベント ハンドラーは、$event パラメーターを通じて、イベントに関する次の情報を取得します。

イベント名: イベント名

イベント送信者:trigger() メソッドを呼び出すオブジェクト

カスタム データ:イベント ハンドラーをアタッチするときに渡されるデータ (デフォルト)記事の詳細な説明の後は空です。

イベント ハンドラーのアタッチ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。