2015-10-23 5 views
11

yii2 docからイベントについて学びます。Yii2でのイベントの実際の例

私はそれがどのように動作するのか知っていますが、どこで使用するのか、それを私の開発でどのように使うのかはわかりません。電子メール通知を送る例があります。それの使い方 。

MYコードiがコントローラに

const EVENT_NEW_USER = 'new-user'; 
public function sendMailto($event){ 
    $this->sendMail(arguments); 
    // you code 
} 

を書き込むモデルで 以下である:

use yii\base\Component; 
use yii\base\Event; 

public function someaction(){ 
    $model->on(SignUpForm::EVENT_NEW_USER, [$model,'sendMailto'],['auth'=>$model_auth,'user_details'=>$user_details]); 
    $model->trigger(SignUpForm::EVENT_NEW_USER); 
} 
+0

私は多くの研究を行い、例があるかもしれませんが、開発中にいつ、どこで、どこでそれを使用するかを見つけることができません。 –

+0

この例はかなり正確ですが、正確に理解できないものはありますか? – arogachev

+0

私はそれをどのように再利用できるのか理解できません。例えばsaveの前にイベントがあり、そのイベントを何度も再利用することができます。 –

答えて

3

Iが緩く単一のYiiインストール内部メッセージの送信者と受信者を結合するためのYiiでイベントを使用する(NO単一のサーバー)。

私のYiiソフトウェアには、機能ブロック用のYiiモジュールがあります。顧客は機能要件に応じてモジュールセットを入手します。これらのモジュールはお互いに交信する必要があります。

例:モジュール1(送信側モジュール)において

  • ユーザに伝達される必要がある状態更新があります。
  • モジュール2(受信モジュール)は、ステータスの更新をtwitterに送信します。
  • モジュール3(レシーバモジュール)は、電子メールでステータス更新を送信します。

送信モジュールを受信モジュールに依存しないようにするために、私はYiiイベントメカニズムを使用します。したがって、モジュール1は受信機について何も知る必要はなく、モジュール2および3は送信機について何も必要としません。共通のメッセージ構造があります。

これは完全に機能し、モジュールは相互に独立しています。

関連する問題