yii2项目实战-用事件优雅的发送邮件
7057
0
0
上文我们介绍了事件的概念以及事件的基本操作,包括事件如何定义以及如何触发。
本文我们再通过一个发送邮件的案例对之加深理解。
定义邮件类
既然是发送邮件,那自然就需要有一个邮件类,专门用来发送邮件。我们在backend\components下定义一个发送邮件的Mail类
<?php namespace backend\components; use Yii; class Mail { public static function sendMail () { echo 'send mail...'; } }
定义事件并触发
接着我们在backend\controllers下定义一个发送邮件的控制器SendMailController
<?php namespace backend\controllers; use Yii; use yii\web\Controller; /** * 发送邮件 * @see http://www.manks.top/document/yii2-event-example.html */ class SendMailController extends Controller { const SEND_MAIL = 'send_mail'; public function init () { parent::init(); // 绑定邮件类,当事件触发的时候,调用我们刚刚定义的邮件类Mail $this->on(self::SEND_MAIL, ['backend\components\Mail', 'sendMail']); } public function actionSend () { // 触发邮件事件 $this->trigger(self::SEND_MAIL); } }
具体的细节我们在上一章节都有所介绍,如果你觉得还是有那么一点稍稍不好理解的话,点击上文再看看呗。
现在我们请求下/index.php?r=send-mail/send操作,页面上输出 send mail...,这便是正常的结果了。我们来看下问题:
回想一下我们平时用qq或者163的邮箱发送邮件的步骤,是不是要填写收件人,主题和内容的呀?如果我们就这样光秃秃的触发了发送邮件的事件,我们是想要把某个固定的邮件内容发送给固定的某个人吗?这肯定不符合我们的实际需求啦!也就是说,我
还有66%的精彩内容,购买继续阅读
- 评论区
共34条评论
登录
后发布评论