イベント機構はスキャン型とバインディング型の2種類に分かれており、バインディング型は主にYiiで使われており、バインディング型にはtrigger()とon()の2つのメソッドが関係します
1.trigger() : イベントは yii\base\Component::trigger() メソッドを呼び出すことによってトリガーされますが、このメソッドにはイベント名を渡す必要があります。 、イベント オブジェクトを渡してイベント ハンドラーにパラメーターを渡すこともできます。 (推奨される学習: yii チュートリアル )
2.on(): クラスのすべてのインスタンスが、指定されたインスタンスではなく、トリガーされたイベントに応答するようにしたい場合があります。イベントの場合、イベント ハンドラーを各インスタンスに 1 つずつアタッチするのではなく、静的メソッド yii\base\Event::on() を呼び出すことによってハンドラーがクラス レベルでアタッチされます。
具体的な例を見てみましょう: (猫とねずみを作成します。猫が鳴くと、ねずみが逃げ始めます)
#上記は cat.php クラスのコードです。スクリーンショットが不完全なので、さらに 2 つ追加します。mouse.php
## を見てみましょう。 #これら 2 つのクラスをどのように関連付ければよいでしょうか? もちろん、これら 2 つのクラスを呼び出すにはコントローラーに依存する必要があります (cat クラスがすでにコンポーネント クラス ファイルを呼び出しているため、コンポーネント クラス ファイルは存在しません) run here を使用する場合は再度呼び出す必要があります)Extension:
##
以上がYii でイベントをバインドする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。