Класс 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Сбросить экземпляр электронной почты.
- 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 )
Установите или получите тип модели, который будет использоваться этим классом
Параметры
- string|null
$modelTypeoptional null - Тип модели или null для получения текущего
Возвращает
string|Cake\Datasource\ModelAwareTrait$this
Краткое описание магических методов
Подробное описание свойств
$_clonedEmailsource
protected string
Клонированный экземпляр Email для восстановления состояния после отправки письма действием почтового отправителя.
© 2005–2016 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.
http://api.cakephp.org/3.2/class-Cake.Mailer.Mailer.html