此包最新版本(2.0.1)没有提供许可证信息。
提供处理 mjml 电子邮件模板的过滤器的 Twig 扩展
2.0.1
2022-05-27 08:43 UTC
Requires
- php: >=7.2
- qferr/mjml-php: ^2.0
- twig/twig: ^2.0|^3.0
Requires (Dev)
- phpunit/phpunit: ~7.0|~8.0
This package is auto-updated.
Last update: 2024-08-27 13:41:40 UTC
README
此包是一个 Twig 扩展,提供以下功能
- mjml_to_html 过滤器:处理 mjml 电子邮件模板。
{% apply mjml_to_html %} <mjml> <mj-body> <mj-section> <mj-column> <mj-text>Hello {{ username }}</mj-text> </mj-column> </mj-section> </mj-body> </mjml> {% endapply %}
由于我们有两种将 MJML 渲染为 HML 的方法,该扩展依赖于一个渲染器
- BinaryRenderer:使用 MJML 库。您需要提供 MJML 二进制文件的位置。别忘了用 Node 包管理器安装它。
- ApiRenderer:使用 MJML API。无需安装。您需要提供访问 API 的凭证。
感谢 MJML in PHP 库简化了 MJML 在 PHP 中的集成。阅读文章 Rendering MJML in PHP 获取更多信息。
安装
composer require qferr/mjml-twig
用法
<?php require_once 'vendor/autoload.php'; use \Qferrer\Mjml\Renderer\ApiRenderer; use \Qferrer\Mjml\Renderer\BinaryRenderer; use \Qferrer\Mjml\Twig\MjmlExtension; $loader = new \Twig\Loader\FilesystemLoader(__DIR__ . '/templates'); $twig = new \Twig\Environment($loader); $renderer = new BinaryRenderer(__DIR__ . '/node_modules/.bin/mjml'); // $api = new \Qferrer\Mjml\Http\CurlApi('my-app-id','my-secret-key'); // $renderer = new \Qferrer\Mjml\Renderer\ApiRenderer($api); $twig->addExtension(new MjmlExtension($renderer)); $html = $twig->render('newsletter.mjml.twig', [ 'username' => 'Quentin' ]);
现在您可以在任何 Twig 模板中使用 MJML。
Symfony 集成
将 MJML 扩展注册为服务,并使用 twig.extension
标签。
# config/services.yaml services: # Qferrer\Mjml\Http\CurlApi: # arguments: # - '%env(MJML_APP_ID)%' # - '%env(MJML_SECRET_KEY)%' # mjml_renderer: # class: Qferrer\Mjml\Renderer\ApiRenderer # arguments: # - '@Qferrer\Mjml\Http\CurlApi' mjml_renderer: class: Qferrer\Mjml\Renderer\BinaryRenderer arguments: - '%kernel.project_dir%/node_modules/.bin/mjml' Qferrer\Mjml\Twig\MjmlExtension: arguments: ['@mjml_renderer'] tags: ['twig.extension']