Реальный пример событий в Yii2

Я узнаю о событиях из документа yii2.

Я знаю, как это работает, но я не знаю, где его использовать и как использовать его в моей разработке. Есть пример отправки уведомления по электронной почте, но я хочу, чтобы был прочный пример, который очистил идею, где использовать и как использовать его.

МОЙ код ниже в модели я пишу

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); 
}

Ответ 1

Я использую события в Yii для слабосвязанного отправителя и получателя сообщений внутри одной установки Yii (без распространения, одного сервера).

В моем программном обеспечении Yii есть модули Yii для функциональных блоков. Клиенты получают комплекты модулей в зависимости от их функциональных требований. Этот модуль должен соединять друг с другом.

Пример:

  • В модуле 1 (модуль отправителя) есть обновление состояния, которое должно быть передано пользователям.
  • Модуль 2 (модуль приемника) отправляет обновления статуса в твиттер.
  • Модуль 3 (модуль приемника) отправляет обновления статуса по электронной почте.

Чтобы модули модуля-отправителя были независимы от модулей-приемников, я использую механизмы событий Yii. Таким образом, модуль 1 не должен ничего знать о приемнике, а модули 2 и 3 ничего не требуют от отправителя. Существует только общая структура сообщений.

Это работает отлично, и модули взаимно независимы.