Класс 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
Резюме свойств
-
$_clonedEmailprotectedstringКлонированный экземпляр Email для восстановления экземпляра после отправки письма действием Mailer.
- Экземпляр Email.
$_emailprotected - Имя Mailer.
string
Унаследованные свойства
Резюме методов
- __call() publicМагический метод для перенаправления метода класса к экземпляру Email.
- __construct() publicКонструктор.
- getName() publicВозвращает имя Mailer.
- implementedEvents() publicРеализованные события.
- layout() publicУстанавливает используемый макет.
- reset() protectedСбросить экземпляр email.
- send() publicОтправляет email.
- 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 [] )
Отправляет email.
Параметры
- строка
$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
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 string
Клонированный экземпляр Email для восстановления экземпляра после отправки письма действием маилера.
© 2005–2017 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.4/class-Cake.Mailer.Mailer.html