diff --git a/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php b/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php index e9b04b71ab734..df2c9f91c3cf2 100644 --- a/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php +++ b/src/Symfony/Bridge/Twig/Mime/BodyRenderer.php @@ -50,10 +50,6 @@ public function render(Message $message): void 'email' => new WrappedTemplatedEmail($this->twig, $message), ]); - if ($template = $message->getTemplate()) { - $this->renderFull($message, $template, $vars); - } - if ($template = $message->getTextTemplate()) { $message->text($this->twig->render($template, $vars)); } @@ -68,29 +64,6 @@ public function render(Message $message): void } } - private function renderFull(TemplatedEmail $message, string $template, array $vars): void - { - $template = $this->twig->load($template); - - if ($template->hasBlock('subject', $vars)) { - $message->subject($template->renderBlock('subject', $vars)); - } - - if ($template->hasBlock('text', $vars)) { - $message->text($template->renderBlock('text', $vars)); - } - - if ($template->hasBlock('html', $vars)) { - $message->html($template->renderBlock('html', $vars)); - } - - if ($template->hasBlock('config', $vars)) { - // we discard the output as we're only interested - // in the side effect of calling email methods - $template->renderBlock('config', $vars); - } - } - private function convertHtmlToText(string $html): string { if (null !== $this->converter) { diff --git a/src/Symfony/Bridge/Twig/Mime/TemplatedEmail.php b/src/Symfony/Bridge/Twig/Mime/TemplatedEmail.php index d840e268c4847..e487055706892 100644 --- a/src/Symfony/Bridge/Twig/Mime/TemplatedEmail.php +++ b/src/Symfony/Bridge/Twig/Mime/TemplatedEmail.php @@ -20,21 +20,10 @@ */ class TemplatedEmail extends Email { - private $template; private $htmlTemplate; private $textTemplate; private $context = []; - /** - * @return $this - */ - public function template(?string $template) - { - $this->template = $template; - - return $this; - } - /** * @return $this */ @@ -55,11 +44,6 @@ public function htmlTemplate(?string $template) return $this; } - public function getTemplate(): ?string - { - return $this->template; - } - public function getTextTemplate(): ?string { return $this->textTemplate; @@ -90,7 +74,7 @@ public function getContext(): array */ public function __serialize(): array { - return [$this->template, $this->htmlTemplate, $this->textTemplate, $this->context, parent::__serialize()]; + return [$this->htmlTemplate, $this->textTemplate, $this->context, parent::__serialize()]; } /** @@ -98,7 +82,7 @@ public function __serialize(): array */ public function __unserialize(array $data): void { - [$this->template, $this->htmlTemplate, $this->textTemplate, $this->context, $parentData] = $data; + [$this->htmlTemplate, $this->textTemplate, $this->context, $parentData] = $data; parent::__unserialize($parentData); } diff --git a/src/Symfony/Bridge/Twig/Tests/Mime/RendererTest.php b/src/Symfony/Bridge/Twig/Tests/Mime/RendererTest.php index 3c30821bb45e4..3c40e6d7ee049 100644 --- a/src/Symfony/Bridge/Twig/Tests/Mime/RendererTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Mime/RendererTest.php @@ -15,9 +15,6 @@ use Symfony\Bridge\Twig\Mime\BodyRenderer; use Symfony\Bridge\Twig\Mime\TemplatedEmail; use Symfony\Component\Mime\Part\Multipart\AlternativePart; -use Symfony\Component\Mime\Part\Multipart\MixedPart; -use Symfony\Component\Mime\Part\Multipart\RelatedPart; -use Symfony\Component\Mime\Part\TextPart; use Twig\Environment; use Twig\Loader\ArrayLoader; @@ -25,13 +22,13 @@ class RendererTest extends TestCase { public function testRenderTextOnly(): void { - $email = $this->prepareEmail(null, 'Text', null); + $email = $this->prepareEmail('Text', null); $this->assertEquals('Text', $email->getBody()->bodyToString()); } public function testRenderHtmlOnly(): void { - $email = $this->prepareEmail(null, null, 'HTML'); + $email = $this->prepareEmail(null, 'HTML'); $body = $email->getBody(); $this->assertInstanceOf(AlternativePart::class, $body); $this->assertEquals('HTML', $body->getParts()[0]->bodyToString()); @@ -40,7 +37,7 @@ public function testRenderHtmlOnly(): void public function testRenderHtmlOnlyWithTextSet(): void { - $email = $this->prepareEmail(null, null, 'HTML'); + $email = $this->prepareEmail(null, 'HTML'); $email->text('Text'); $body = $email->getBody(); $this->assertInstanceOf(AlternativePart::class, $body); @@ -50,108 +47,16 @@ public function testRenderHtmlOnlyWithTextSet(): void public function testRenderTextAndHtml(): void { - $email = $this->prepareEmail(null, 'Text', 'HTML'); + $email = $this->prepareEmail('Text', 'HTML'); $body = $email->getBody(); $this->assertInstanceOf(AlternativePart::class, $body); $this->assertEquals('Text', $body->getParts()[0]->bodyToString()); $this->assertEquals('HTML', $body->getParts()[1]->bodyToString()); } - public function testRenderFullOnly(): void - { - $email = $this->prepareEmail(<<HTML{% endblock %} -EOF - , null, null); - $body = $email->getBody(); - $this->assertInstanceOf(AlternativePart::class, $body); - $this->assertEquals('Subject', $email->getSubject()); - $this->assertEquals('Text', $body->getParts()[0]->bodyToString()); - $this->assertEquals('HTML', $body->getParts()[1]->bodyToString()); - } - - public function testRenderFullOnlyWithTextOnly(): void - { - $email = $this->prepareEmail(<<getBody(); - $this->assertInstanceOf(TextPart::class, $body); - $this->assertEquals('', $email->getSubject()); - $this->assertEquals('Text', $body->bodyToString()); - } - - public function testRenderFullOnlyWithHtmlOnly(): void - { - $email = $this->prepareEmail(<<HTML{% endblock %} -EOF - , null, null); - $body = $email->getBody(); - $this->assertInstanceOf(AlternativePart::class, $body); - $this->assertEquals('', $email->getSubject()); - $this->assertEquals('HTML', $body->getParts()[0]->bodyToString()); - $this->assertEquals('HTML', $body->getParts()[1]->bodyToString()); - } - - public function testRenderFullAndText(): void - { - $email = $this->prepareEmail(<<HTML{% endblock %} -EOF - , 'Text', null); - $body = $email->getBody(); - $this->assertInstanceOf(AlternativePart::class, $body); - $this->assertEquals('Text', $body->getParts()[0]->bodyToString()); - $this->assertEquals('HTML', $body->getParts()[1]->bodyToString()); - } - - public function testRenderFullAndHtml(): void - { - $email = $this->prepareEmail(<<HTML{% endblock %} -EOF - , null, 'HTML'); - $body = $email->getBody(); - $this->assertInstanceOf(AlternativePart::class, $body); - $this->assertEquals('Text full', $body->getParts()[0]->bodyToString()); - $this->assertEquals('HTML', $body->getParts()[1]->bodyToString()); - } - - public function testRenderHtmlWithEmbeddedImages(): void - { - $email = $this->prepareEmail(null, null, ''); - $body = $email->getBody(); - $this->assertInstanceOf(RelatedPart::class, $body); - $this->assertInstanceOf(AlternativePart::class, $body->getParts()[0]); - $this->assertStringMatchesFormat('', $body->getParts()[0]->getParts()[1]->bodyToString()); - $this->assertEquals('Some image data', base64_decode($body->getParts()[1]->bodyToString())); - } - - public function testRenderFullWithAttachments(): void - { - $email = $this->prepareEmail(<<getBody(); - $this->assertInstanceOf(MixedPart::class, $body); - $this->assertEquals('Text', $body->getParts()[0]->bodyToString()); - $this->assertEquals('Some text document...', base64_decode($body->getParts()[1]->bodyToString())); - } - - private function prepareEmail(?string $full, ?string $text, ?string $html): TemplatedEmail + private function prepareEmail(?string $text, ?string $html): TemplatedEmail { $twig = new Environment(new ArrayLoader([ - 'full' => $full, 'text' => $text, 'html' => $html, 'document.txt' => 'Some text document...', @@ -159,9 +64,6 @@ private function prepareEmail(?string $full, ?string $text, ?string $html): Temp ])); $renderer = new BodyRenderer($twig); $email = (new TemplatedEmail())->to('fabien@symfony.com')->from('helene@symfony.com'); - if (null !== $full) { - $email->template('full'); - } if (null !== $text) { $email->textTemplate('text'); } diff --git a/src/Symfony/Bridge/Twig/Tests/Mime/TemplatedEmailTest.php b/src/Symfony/Bridge/Twig/Tests/Mime/TemplatedEmailTest.php index f5d9235a6d503..999ca4d078d58 100644 --- a/src/Symfony/Bridge/Twig/Tests/Mime/TemplatedEmailTest.php +++ b/src/Symfony/Bridge/Twig/Tests/Mime/TemplatedEmailTest.php @@ -13,9 +13,6 @@ public function test() $email->context($context = ['product' => 'Symfony']); $this->assertEquals($context, $email->getContext()); - $email->template($template = 'full'); - $this->assertEquals($template, $email->getTemplate()); - $email->textTemplate($template = 'text'); $this->assertEquals($template, $email->getTextTemplate());