Класс Mailer
Базовый класс Mailer.
Классы Mailer позволяют вам инкапсулировать связанную логику электронной почты в повторно используемый и тестируемый класс.
Определение сообщений
Mailer упрощают определение методов, обрабатывающих логику форматирования электронных писем. Например:
class UserMailer extends Mailer
{
public function resetPassword($user)
{
$this
->setSubject('Reset Password')
->setTo($user->email)
->set(['token' => $user->token]);
}
} Это тривиальный пример, но он демонстрирует, как можно объявить маиллер.
Отправка сообщений
После определения некоторых сообщений вы захотите отправить их:
$mailer = new UserMailer();
$mailer->send('resetPassword', $user); Обработчик событий
Mailer также могут подписываться на события приложения, позволяя вам отделить доставку электронных писем от вашего кода приложения. Переопределив метод implementedEvents() , вы можете определить обработчики событий, которые могут преобразовывать события в электронные письма. Например, если в вашем приложении есть событие регистрации пользователя:
public function implementedEvents()
{
return [
'Model.afterSave' => 'onRegistration',
];
}
public function onRegistration(Event $event, Entity $entity, ArrayObject $options)
{
if ($entity->isNew()) {
$this->send('welcome', [$entity]);
}
} Метод onRegistration преобразует событие приложения в метод маиллера. Наш маиллер может быть зарегистрирован в загрузчике приложения или в методе initialize() класса Table.
- Cake\Mailer\Mailer реализует Cake\Event\EventListenerInterface использует Cake\Datasource\ModelAwareTrait
Краткое описание свойств
-
$_clonedEmailprotectedКлонированный экземпляр Email для восстановления экземпляра после отправки письма действием маиллера.
- Экземпляр Email.
$_emailprotected - Имя маиллера.
string
Унаследованные свойства
Краткое описание методов
- __call() publicМагический метод для передачи метода классу Email.
- __construct() publicКонструктор.
- getName() publicВозвращает имя маиллера.
- implementedEvents() publicРеализованные события.
- layout() publicУстанавливает используемый макет.
- reset() protectedСбросить экземпляр email.
- send() publicОтправить письмо.
- set() publicУстанавливает переменные представления email.
- viewBuilder() publicПолучить билдер представлений экземпляра Email.
Подробное описание методов
__call()source public
__call( string $method , array $args )
Магический метод для передачи метода классу Email.
Параметры
- строка
$method - Имя метода.
- массив
$args - Аргументы метода
Возвращает
$this|смешанный
__construct()source public
__construct( Cake\Mailer\Email $email null )
Конструктор.
Параметры
-
Cake\Mailer\Email$emailнеобязательно null - Экземпляр Email.
implementedEvents()source public
implementedEvents( )
Реализованные события.
Возвращает
массивРеализация
Cake\Event\EventListenerInterface::implementedEvents() layout()source public
layout( string $layout )
Устанавливает используемый макет.
Устарело
3.4.0 Используйте setLayout(), который устанавливает макет в классе email вместо этого.Параметры
- строка
$layout - Имя используемого макета.
Возвращает
$this
send()source public
send( string $action , array $args [] , array $headers [] )
Отправить письмо.
Параметры
- строка
$action - Название действия маиллера для запуска.
- массив
$argsнеобязательно [] - Аргументы для передачи запущенному действию маиллера.
- массив
$headersнеобязательно [] - Заголовки для установки.
Возвращает
массивВыбрасывает
Cake\Mailer\Exception\MissingActionExceptionBadMethodCallException
set()source public
set( string|array $key , mixed $value null )
Устанавливает переменные представления email.
Параметры
- строка|массив
$key - Имя переменной или хеш переменных представления.
- смешанный
$valueнеобязательно null - Значение переменной представления.
Возвращает
$this
viewBuilder()source public
viewBuilder( )
Получить билдер представлений экземпляра Email.
Возвращает
Cake\View\ViewBuilderИспользуемые методы из Cake\Datasource\ModelAwareTrait
_setModelClass()source protected
_setModelClass( string $name )
Установить свойства modelClass и modelKey на основе соглашений.
Если свойства уже установлены, они не будут перезаписаны.
Параметры
- строка
$name - Имя класса.
getModelType()source public
getModelType( )
Получить тип модели, который будет использоваться этим классом
Возвращает
строкаloadModel()source public
loadModel( string|null $modelClass null , string|null $modelType null )
Загружает и создает объекты репозитория, необходимые этому объекту
Обычно используется для загрузки объектов таблиц ORM по мере необходимости. Также может использоваться для загрузки других типов объектов репозитория, которые использует ваше приложение.
Если поставщик репозитория не возвращает объект, будет брошено исключение MissingModelException.
Параметры
- строка|null
$modelClassнеобязательно null - Имя класса модели для загрузки. По умолчанию $this->modelClass
- строка|null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию значение modelType().
Возвращает
Cake\Datasource\RepositoryInterfaceСозданный экземпляр модели.
Выбрасывает
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не может быть найден.
InvalidArgumentException
При использовании типа, который не был зарегистрирован.
UnexpectedValueException
Если не определен тип модели
modelFactory()source public
modelFactory( string $type , callable $factory )
Переопределите существующий вызов для генерации репозиториев заданного типа.
Параметры
- строка
$type - Имя типа репозитория, для которого предназначена функция фабрики.
- вызов
$factory - Функция фабрики, используемая для создания экземпляров.
modelType()source public
modelType( string|null $modelType null )
Установить или получить тип модели, используемой этим классом
Устаревшее
3.5.0 Используйте getModelType()/setModelType() вместо этого.Параметры
- string|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего
Возвращает
string|Cake\Datasource\ModelAwareTrait$this
setModelType()source public
setModelType( string $modelType )
Установить тип модели, используемой этим классом
Параметры
- string
$modelType - Тип модели
Возвращает
$this
Краткое описание магических методов
Подробности свойств
$_clonedEmailsource
protected Cake\Mailer\Email
Клонированный экземпляр Email для восстановления экземпляра после отправки письма действием почтового сервиса.
© 2005–2018 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.5/class-Cake.Mailer.Mailer.html