Skip to content

Commit 96f916f

Browse files
committed
Issue #104: how to send an email and parse the content
Signed-off-by: horea <[email protected]>
1 parent 3e8480a commit 96f916f

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

docs/book/v6/core-features/rendering-and-sending-emails.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# Rendering and sending emails
22

3-
In the previous versions of Dotkernel API we have been composing email bodies using Twig from the mezzio/mezzio-twigrenderer package.\
4-
In the current version of Dotkernel API, we introduced the core mail service Core/src/App/src/Service/MailService which is responsible for sending all emails.
3+
In the previous versions of Dotkernel API we have been composing email bodies using **Twig** from the `mezzio/mezzio-twigrenderer` package.\
4+
In the current version of Dotkernel API, we introduced the core mail service `Core/src/App/src/Service/MailService` which is responsible for sending all emails.
55

6-
Being a core service, MailService is used across all projects implementing the Core architecture.\
7-
To compose and send an email, a solid implementation of TemplateRendererInterface was required to be injected into MailService, because each method rendered and parsed their respective templates in place before sending an email.
8-
This is acceptable with other Dotkernel applications which in most cases return a rendered template, but being that Dotkernel API mostly returns JSON objects, rendered with a different renderer, Twig had to be replaced with a lighter solution.
6+
Being a core service, `MailService` is used across all projects implementing the Core architecture.\
7+
To compose and send an email, a solid implementation of `TemplateRendererInterface` was required to be injected into `MailService`, because each method rendered and parsed their respective templates in place before sending an email.
8+
This is acceptable with other Dotkernel applications which in most cases return a rendered template, but being that Dotkernel API mostly returns JSON objects, rendered with a different renderer, **Twig** had to be replaced with a lighter solution.
99

10-
The solution is a custom Api\App\Template\Renderer implementing Api\App\Template\RendererInterface.
11-
This is a lightweight renderer, aimed at rendering a combination of PHP and HTML files with phtml extension.
10+
The solution is a custom [`Api\App\Template\Renderer`](https://github.com/dotkernel/api/blob/6.0/src/App/src/Template/Renderer.php) implementing [`Api\App\Template\RendererInterface`](https://github.com/dotkernel/api/blob/6.0/src/App/src/Template/RendererInterface.php).\
11+
This is a lightweight renderer, aimed at rendering a combination of **PHP** and **HTML** files with phtml extension.
1212

13-
With the new solution, MailService requires no implementation of any renderer because it no longer has to render templates internally.\
14-
Instead, an implementation of Api\App\Template\RendererInterface is first injected in the handler:
13+
With the new solution, `MailService` requires no implementation of any renderer because it no longer has to render templates internally.\
14+
Instead, an implementation of `Api\App\Template\RendererInterface` is first injected in the handler:
1515

1616
```php
1717
class ExampleHandler extends AbstractHandler
@@ -30,7 +30,7 @@ class ExampleHandler extends AbstractHandler
3030
Then, the handler calls the renderer and saves the rendered template in a variable:
3131

3232
```php
33-
$body = $this->renderer->render('user::welcome', ['user' => $user])
33+
$body = $this->renderer->render('user::welcome', ['user' => $user]);
3434
```
3535

3636
And finally, the handler calls the mail service with the composed $body being passed as a parameter to the method which sends the email:

0 commit comments

Comments
 (0)