Yii2中事件的真实示例

时间:2015-10-23 05:14:41

标签: php yii yii2

我从yii2 doc了解事件。

我知道它是如何工作的,但我不知道在哪里使用它以及如何在我的开发中使用它。有发送电子邮件通知的例子,但我想要一个明确的例子,清楚这个想法在哪里使用以及如何使用使用它。

我的代码如下 在我写的模型中

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 个答案:

答案 0 :(得分:3)

我在Yii中使用事件来松散地耦合单个Yii安装中的消息的发送者和接收者(没有分发,单个服务器)。

在我的Yii软件中,有用于功能块的Yii模块。客户根据其功能要求获取模块集。这些模块需要相互沟通。

示例:

  • 在模块1(发件人模块)中,需要将状态更新传达给用户。
  • 模块2(接收器模块)向twitter发送状态更新。
  • 模块3(接收器模块)通过电子邮件发送状态更新。

为了使发送者模块独立于接收器模块,我使用Yii事件机制。因此,模块1不需要知道有关接收器的任何信息,模块2和3不需要任何关于发送器的信息。只有一个共同的消息结构。

完美无缺,模块是相互独立的。