イベント
イベントを使用すると、カスタム コードを特定の実行に「挿入」できます。既存のコード内のポイント。 カスタム コードをイベントにアタッチすると、イベントがトリガーされたときにコードが自動的に実行されます。 (推奨学習: 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 サイトの他の関連記事を参照してください。