Класс Mailer
Базовый класс Mailer.
Классы Mailer позволяют вам инкапсулировать связанную логику электронной почты в повторно используемый и тестируемый класс.
Определение сообщений
Mailer делают легким определение методов, обрабатывающих логику форматирования электронной почты. Например:
class UserMailer extends Mailer
{
public function resetPassword($user)
{
$this
->setSubject('Reset Password')
->setTo($user->email)
->set(['token' => $user->token]);
}
} Это тривиальный пример, но он показывает, как можно объявить mailer.
Отправка сообщений
После определения некоторых сообщений вы захотите их отправить:
$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 преобразует событие приложения в метод mailer. Наш mailer может быть зарегистрирован либо в загрузчике приложения, либо в методе initialize() класса Table.
- Cake\Mailer\Mailer реализует Cake\Event\EventListenerInterface использует Cake\Datasource\ModelAwareTrait
Краткое описание свойств
-
$_clonedEmailprotectedКлонированный экземпляр Email для восстановления экземпляра после отправки электронной почты действием mailer.
- Экземпляр Email.
$_emailprotected - Имя Mailer.
string
Унаследованные свойства
Краткое описание методов
- __call() publicМагический метод для переадресации метода класса экземпляру Email.
- __construct() publicКонструктор.
- getName() publicВозвращает имя mailer.
- implementedEvents() publicРеализованные события.
- Устанавливает используемый макет.
- reset() protectedСброс экземпляра email.
- send() publicОтправляет электронную почту.
- set() publicУстанавливает переменные представления email.
- viewBuilder() publicПолучить обработчик представлений экземпляра Email.
Подробное описание методов
__call()source public
__call( string $method , array $args )
Магический метод для переадресации метода класса экземпляру Email.
Параметры
- строка
$method - Имя метода.
- массив
$args - Аргументы метода
Возвращает
$this|mixed
__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 deprecated
layout( string $layout )
Устанавливает используемый макет.
Устаревшее
3.4.0 Используйте setLayout(), который устанавливает макет в классе email вместо этого.Параметры
- строка
$layout - Имя используемого макета.
Возвращает
$this
send()source public
send( string $action , array $args = [] , array $headers = [] )
Отправляет электронную почту.
Параметры
- строка
$action - Имя действия mailer для запуска.
- массив
$argsнеобязательно [] - Аргументы для передачи в вызываемое действие mailer.
- массив
$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 Table, как требуется. Также может использоваться для загрузки других типов объектов репозитория, которые использует ваше приложение.
Если поставщик репозитория не возвращает объект, будет выброшено исключение 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 deprecated
modelType( string|null $modelType = null )
Установить или получить тип модели, используемый этим классом
Устарело
3.5.0 Используйте getModelType()/setModelType() вместо этого.Параметры
- строка|null
$modelTypeопционально null - Тип модели или null для получения текущего
Возвращает
строка|Cake\Datasource\ModelAwareTrait$this
setModelType()source public
setModelType( string $modelType )
Установить тип модели, используемый этим классом
Параметры
- строка
$modelType - Тип модели
Возвращает
$this
Краткое описание магических методов
Подробности свойств
$_clonedEmailsource
protected Cake\Mailer\Email
Клонированный экземпляр Email для восстановления экземпляра после отправки письма действием отправителя.
© 2005–present 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.6/class-Cake.Mailer.Mailer.html