gushphp/to-inline-style-email-bundle

tijsverkoyen 的 CssToInlineStyles 翻译器的 Symfony2 扩展包

安装次数: 302 319

依赖者: 0

建议者: 0

安全: 0

星标: 59

关注者: 3

分支: 33

公开问题: 4

类型:symfony-bundle

1.5.2 2018-01-14 12:37 UTC

This package is not auto-updated.

Last update: 2024-09-15 02:52:07 UTC


README

ToInlineStyleEmailBundle 是一个用于 Tijs Verkoyen 开发的 CssToInlineStyles 翻译器的 Symfony2 扩展包(有关存储库,请参阅 https://github.com/tijsverkoyen/CssToInlineStyles

需求

ToInlineStyleEmailBundle 仅支持 PHP 5.5 及以上版本。

安装

请使用 Composer 在您的 Symfony2 应用程序中安装此扩展包。

请在您的 composer.json 文件中添加以下行

"require": {
    "gushphp/to-inline-style-email-bundle": "~1.4.0"
},

然后,通过添加以下行在您的 AppKernel 中注册扩展包

    new RobertoTru\ToInlineStyleEmailBundle\RobertoTruToInlineStyleEmailBundle(),

文档和示例

该扩展包提供了一个名为 css_to_inline_email_converter 的服务。您可以在控制器中使用它,以便快速访问 Tijs Verkoyen 开发的转换器。例如:

public function indexAction() {
    $converter = $this->get('css_to_inline_email_converter');
    ...
}

获取 HTML 和 CSS 作为字符串,并将这些必需值设置为转换器对象,例如:

$converter = $this->get('css_to_inline_email_converter');

$html = ...; // get the HTML here
$css = ....; // get the CSS here

return $converter->inlineCSS($html, $css);

从其文件夹中检索 HTML 和 CSS 文件的操作仅由您决定。例如,在控制器中检索 CSS 的内容:

file_get_contents($this->container->getParameter('kernel.root_dir').'/../src/Acme/TestBundle/Resources/css/mystyle.css');

当然,假设 Symfony 用户将使用模板而不是静态 HTML 页面。因此,为了方便起见,该服务提供了一个能够渲染模板的函数。例如:

$converter->setHTMLByView(
    'AcmeTestBundle:MyController:my_template.html.twig',
    [
        'param_1' => $val_of_param_1,
        // ...,
        'param_n' => $val_of_param_n
    ]
);

必须使用前面的函数而不是 setHTML() 函数。

要使用 generateStyledHTML 方法,只需像这样使用它:

$converter->setHtml($html);
$converter->setCss($css);
return $converter->generateStyledHTML();

您可以直接在 Twig 模板中使用内联 CSS

{% inlinecss '/css/email.css' %}
<div class="foo">
...
</div>
{% endinlinecss %}

支持相对于扩展包的路径

{% inlinecss '@AppBundle/Resources/css/email.css' %}
<div class="foo">
...
</div>
{% endinlinecss %}

支持动态变量(使用带有资产的绝对路径或直接使用文件的完整路径的变量)

{% set path = asset('css/email.css', null, true) %}
{% inlinecss path %}
<div class="foo">
...
</div>
{% endinlinecss %}

支持动态变量(使用带有资产的绝对路径或直接使用文件的完整路径的变量)

{% set path = asset('css/email.css', null, true) %}
{% inlinecss path %}
<div class="foo">
...
</div>
{% endinlinecss %}

有关服务的使用方法的详细信息,请参阅文件中的文档。

贡献

ToInlineStyleEmailBundle 是一个开源项目,采用 MIT 许可。鼓励贡献。请随时贡献以改进此扩展包。

关于扩展包作者的简介

ToInlineStyleEmailBundle 最初由 Roberto Trunfio 开发。目前,该扩展包由 Luis Cordova 通过 gushphp 组织维护。

作者同意维护后,最初在 packagist 上名为 robertotru 的初始包已移动到这里到 gushphp 组织。