Skip to content
Snippets Groups Projects
mjmlextension.php 977 B
Newer Older
Pavel Piligrimov's avatar
Pavel Piligrimov committed
<?php

namespace Mail\Mjml\Mjml\TwigExtension;

use Twig\TwigFilter;
use Mail\Mjml\Mjml\Renderer\RendererInterface;
use Twig\Extension\AbstractExtension;

/**
 * Расширение для twig
 */
class MjmlExtension extends AbstractExtension
{
    /**
     * @var RendererInterface
     */
    protected $oRenderer;

    /**
     * MjmlExtension constructor.
     *
     * @param RendererInterface $renderer
     */
    public function __construct(RendererInterface $renderer)
    {
        $this->oRenderer = $renderer;
    }

    /**
     * @inheritDoc
     */
    public function getFilters(): array
    {
        return [
            new TwigFilter('mjml_to_html', [$this, 'render'], ['is_safe' => ['all']])
        ];
    }

    /**
     * Render MJML to HTML
     *
     * @param string $content
     *
     * @return string The generated HTML
     */
    public function render(string $content): string
    {
        return $this->oRenderer->render($content);
    }
}