Класс Mailer
Базовый класс Mailer.
Классы Mailer позволяют вам инкапсулировать связанную логику электронной почты в переиспользуемый и тестируемый класс.
Определение сообщений
Mailer упрощают определение методов, обрабатывающих логику форматирования электронной почты. Например:
class UserMailer extends Mailer
{
public function resetPassword($user)
{
$this
->subject('Reset Password')
->to($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Отправить электронное письмо.
- set() publicУстанавливает переменные представления электронной почты.
- 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 )
Устанавливает используемый макет.
Параметры
- строка
$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 )
Устанавливает переменные представления электронной почты.
Параметры
- строка|массив
$key - Имя переменной или хеш переменных представления.
- смешанный
$valueопционально null - Значение переменной представления.
Возвращает
объект $this.
viewBuilder()source public
viewBuilder( )
Получить конструктор представлений экземпляра Email.
Возвращает
Cake\View\ViewBuilderМетоды, используемые из Cake\Datasource\ModelAwareTrait
_setModelClass()source protected
_setModelClass( string $name )
Установить свойства modelClass и modelKey на основе соглашений.
Если свойства уже установлены, они не будут перезаписаны
Параметры
- строка
$name - Имя класса.
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 )
Установить или получить тип модели, который будет использоваться этим классом
Параметры
- строка|null
$modelTypeопционально null - Тип модели или null для получения текущего
Возвращает
строка|Cake\Datasource\ModelAwareTrait$this
Краткое описание магических методов
Подробное описание свойств
$_clonedEmailsource
protected string
Клонированный экземпляр электронной почты для восстановления экземпляра после отправки почты действием маилера.
© 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.3/class-Cake.Mailer.Mailer.html