Extension for creating email templates and managing by using your site dashboard. You can create email templates with CRUD module in your backend or Gii generator.
Documentation is at docs/guide/README.md.
The preferred way to install this extension is through composer.
Either run
$ composer require yiimaker/yii2-email-templates
or add
"yiimaker/yii2-email-templates": "~4.1"
to the require
section of your composer.json
.
-
Create template with placeholders using your site dashboard or Gii generator
register-notification
- this is unique key of this template for using in your codeNotification from {siteName}
In this example email subject has one placeholder
{siteName}
Hello, {username}! Welcome to {siteName} :)
Email body has two placeholders:
{username}
and{siteName}
.All keys should be wrapped by
{}
. -
Now you can get this template in your code
$template = Yii::$app->get('templateManager')->getTemplate('register-notification');
This method returns a template model object.
-
Create a class that implements the ymaker\email\templates\templates interface.
#####Property names are equal to placeholders.
use ymaker\email\templates\templates\TemplateInterface; class NotificationTemplate implements TemplateInterface { /** * @var string */ private $username; /** * @var string */ private $siteName; public function __construct(string $username, string $siteName) { $this->username = $username; $this->siteName = $siteName; } }
-
Then you should parse this template
$template->parse(new NotificationTemplate( Yii::$app->getIdentity()->username, Yii::$app->name ));
this methods replace placeholders in template with real data.
-
Now you can use data of this template in your logic
Yii::$app->get('mailer')->compose() ->setSubject($template->subject()) ->setHtmlBody($template->body()) // ...
You can run tests with composer command
$ composer test
or using following command
$ codecept build && codecept run
For information about contributing please read CONTRIBUTING.md.
This project is released under the terms of the BSD-3-Clause license.
Copyright (c) 2017-2018, Yii Maker