Лучший подход для хранения шаблонов электронной почты в Yii

Сейчас я реализую функциональность, которая позволяет отправлять системные электронные письма пользователям, зарегистрированным в моем проекте Yii 1.1.

Я начинающий разработчик, поэтому мне все еще нужна подсказка, поэтому у меня есть пара простых вопросов о реализации хранения и извлечения файлов шаблонов электронной почты, которые будут использоваться при отправке системных сообщений (например, с использованием swiftMailer).

  1. Какая папка приложения Yii лучше всего подходит для хранения шаблонов электронной почты в формате HTML для системных сообщений?
  2. Какой класс должен расширять мою модель «Шаблон электронной почты», поскольку шаблоны электронной почты будут храниться в виде файлов, и модель не будет взаимодействовать с базой данных.
  3. Является ли подход (отдельная модель «Шаблон электронной почты» + хранение файлов шаблонов электронной почты в системе) хорошим для такого рода вещей?

Заранее спасибо. Если кто-то может порекомендовать делать вещи по-другому, это также будет высоко ценится.

0

Решение

Электронные письма не отличаются от других типов представлений, только механизм их доставки отличается. Вот где Yii ожидает, что ваши шаблоны будут:

yii/
-- protected/
-- views/
-- mail/
-- template.html

Вы можете указать шаблоны из Yii для ваших писем. Смотрите документацию для YiiMailMessage->setBody:

/**
* Set the body of this entity, either as a string, or array of view
* variables if a view is set, or as an instance of
* {@link Swift_OutputByteStream}.
*
* @param mixed the body of the message.  If a $this->view is set and this
* is a string, this is passed to the view as $body.  If $this->view is set
* and this is an array, the array values are passed to the view like in the
* controller render() method
* @param string content type optional. For html, set to 'html/text'
* @param string charset optional
*/

Пример:

$message = new YiiMailMessage;
$message->view = 'main_tpl';
$message->setBody(array(
'data' => $data,
'user' => $user,
));
$message->subject = $subject;
$message->addTo($email);
$message->from = $from;
Yii::app()->mail->send($message);

Это готовит сообщение с yii/protected/views/mail/main_tpl.php шаблон, и отправляет его вместе с $data а также $user чтобы заполнить недостающие части.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]