Я хотел бы создать собственный класс, который будет генерировать электронное письмо в формате HTML. Я хочу, чтобы содержимое письма приходило из каталога "сценарии просмотра электронной почты". Таким образом, концепция будет заключаться в том, что я могу создать сценарий представления электронной почты в формате HTML так же, как и сценарий обычного представления (с возможностью указания переменных класса и т. Д.), А сценарий представления будет отображаться как тело HTML письма.
Например, в контроллере:
$email = My_Email::specialWelcomeMessage($toEmail, $firstName, $lastName);
$email->send();
Функция My_Email::specialWelcomeMessage()
будет делать что-то вроде этого:
public static function specialWelcomeMessage($toEmail, $firstName, $lastName) {
$mail = new Zend_Mail();
$mail->setTo($toEmail);
$mail->setFrom($this->defaultFrom);
$mail->setTextBody($this->view->renderPartial('special-welcome-message.text.phtml', array('firstName'=>$firstName, 'lastName'=>$lastName));
}
В идеале было бы лучше, если бы я мог найти способ заставить функцию specialWelcomeMessage()
действовать так же просто, как это:
public static function specialWelcomeMessage($toEmail, $firstName, $lastName) {
$this->firstName = $firstName;
$this->lastName = $lastName;
//the text body and HTML body would be rendered automatically by being named $functionName.text.phtml and $functionName.html.phtml just like how controller actions/views happen
}
, который затем отобразит сценарии special-welcome-message.text.phtml и special-welcome-message.html.phtml:
<p>Thank you <?php echo $this->firstName; ?> <?php echo $this->lastName; ?>.</p>
Как бы я вызвал помощника частичного представления извне скрипта или контроллера вида? Правильно ли я подхожу к этому? Или есть лучшее решение этой проблемы?