MVC PHP - 从Model发送邮件

Jon*_*tan 6 php model-view-controller controller model php-5.3

每当我从模型或控制器发送邮件时,我都会遇到问题.事情是在我使用的控制器中

这是关于PHP的.

在控制器中:

if (Post::get()){
   $this->model->registerUser( ... );
   $this->model->mailSendUserActivation();
   // assign something to view.
}
Run Code Online (Sandbox Code Playgroud)

在模型中:

public function mailSendUserActivation(){
    $mail = new \com\Mail();
    // assign stuff to mail from API classes and other functions in model.
    $mail->send();
}
Run Code Online (Sandbox Code Playgroud)

它是否正确 ?或者邮件真的应该从控制器发送?

Mr.*_*. L 10

模型应描述您的域模型.
控制器应处理与用户的交互.
发送邮件是一个动作,所以你应该在控制器中处理它.
如果发送电子邮件需要复杂的代码(比如说不止几行),请考虑将其提取到一些帮助程序类,以保持控制器的纤薄和凝聚力.所以我会把代码用于在一些帮助类方法中发送电子邮件,并在控制器操作中调用它.

在维基百科上MVC的良好解释

  • 另外,如果可能,请考虑在View层中呈现邮件正文.一些MVC使这很容易,它将演示文稿放在它所属的位置.这通常带来优势,例如,如果系统中的视图层具有许多便于为网页呈现HTML的便利设施,那么也可以非常轻松地呈现HTML电子邮件. (2认同)

dia*_*man 3

您应该从控制器发送邮件,在需要时/从模型中读取数据/等。