我从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);
}
答案 0 :(得分:3)
我在Yii中使用事件来松散地耦合单个Yii安装中的消息的发送者和接收者(没有分发,单个服务器)。
在我的Yii软件中,有用于功能块的Yii模块。客户根据其功能要求获取模块集。这些模块需要相互沟通。
示例:
为了使发送者模块独立于接收器模块,我使用Yii事件机制。因此,模块1不需要知道有关接收器的任何信息,模块2和3不需要任何关于发送器的信息。只有一个共同的消息结构。
完美无缺,模块是相互独立的。