Класс 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
Подробное описание методов
__callsource public
__call( string $method , array $args )
Магический метод для переадресации метода класса в экземпляр Email.
Параметры
- строка
$method - Имя метода.
- массив
$args - Аргументы метода
Возвращает
mixed$this
__constructsource public
__construct( Cake\Mailer\Email $email null )
Конструктор.
Параметры
-
Cake\Mailer\Email$emailнеобязательно null - Экземпляр Email.
implementedEventssource public
implementedEvents( )
Реализованные события.
Возвращает
arrayмассив
Реализация
Cake\Event\EventListenerInterface::implementedEvents() layoutsource public
layout( string $layout )
Устанавливает используемый макет.
Параметры
- строка
$layout - Имя используемого макета.
Возвращает
mixedобъект $this.
sendsource public
send( string $action , array $args [] , array $headers [] )
Отправить электронное письмо.
Параметры
- строка
$action - Имя действия mailer для запуска.
- массив
$argsнеобязательно [] - Аргументы для передачи вызванному действию mailer.
- массив
$headersнеобязательно [] - Заголовки для установки.
Возвращает
arrayмассив
Исключение
Cake\Mailer\Exception\MissingActionException\Cake\Mailer\Exception\MissingActionException
BadMethodCallException\BadMethodCallException
setsource public
set( string|array $key , mixed $value null )
Устанавливает переменные представления электронной почты.
Параметры
- строка|массив
$key - Имя переменной или хеш переменных представления.
- смешанный
$valueнеобязательно null - Значение переменной представления.
Возвращает
mixedобъект $this.
viewBuildersource public
viewBuilder( )
Получить билдер представления экземпляра Email.
Возвращает
Cake\View\ViewBuilder\Cake\View\ViewBuilder
Методы, используемые из Cake\Datasource\ModelAwareTrait
_setModelClasssource protected
_setModelClass( string $name )
Установить свойства modelClass и modelKey на основе соглашений.
Если свойства уже установлены, они не будут перезаписаны.
Параметры
- строка
$name - Имя класса.
loadModelsource public
loadModel( string|null $modelClass null , string|null $modelType null )
Загружает и создаёт объекты репозитория, необходимые для этого объекта.
Обычно используется для загрузки объектов таблицы ORM, как требуется. Также можно использовать для загрузки других типов объектов репозитория, которые использует ваше приложение.
Если поставщик репозитория не возвращает объект, будет выброшено исключение MissingModelException.
Параметры
- строка|null
$modelClassнеобязательно null - Имя класса модели для загрузки. По умолчанию $this->modelClass
- строка|null
$modelTypeнеобязательно null - Тип репозитория для загрузки. По умолчанию значение modelType().
Возвращает
objectСозданный экземпляр модели.
Исключение
Cake\Datasource\Exception\MissingModelExceptionЕсли класс модели не найден.
InvalidArgumentExceptionПри использовании типа, который не зарегистрирован.
UnexpectedValueExceptionЕсли тип модели не определён
modelFactorysource public
modelFactory( string $type , callable $factory )
Регистрирует вызываемый объект для генерации репозиториев заданного типа.
Параметры
- строка
$type - Имя типа репозитория, для которого предназначена функция фабрики.
- вызываемый объект
$factory - Функция фабрики, используемая для создания экземпляров.
modelTypesource public
modelType( string|null $modelType null )
Установить или получить тип модели, который будет использоваться этим классом
Параметры
- строка|null
$modelTypeнеобязательно null - Тип модели или null для получения текущего
Возвращает
string|$this$this
Краткое описание магических методов
Краткое описание свойств
Сводка свойств, используемых из Cake\Datasource\ModelAwareTrait
$modelClasssource
public string
Полное имя основной модели данного объекта. Должно быть в множественном числе. CakePHP не будет склонять имя.
Пример: Для объекта с именем «Комментарии» моделью будет «Комментарии». Классы плагинов должны использовать имена в формате Plugin.Comments для корректной загрузки моделей из соответствующего плагина.
© 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.1/class-Cake.Mailer.Mailer.html