fazy/assetic-config-bundle

将占位符替换为 Symfony 2 配置值的 Assetic 过滤器。

该软件包的官方仓库似乎已删除,因此该软件包已被冻结。

安装次数: 6,397

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 0

分支: 2

开放问题: 1

类型:symfony-bundle

dev-master 2014-11-13 10:34 UTC

This package is not auto-updated.

Last update: 2019-06-09 02:03:06 UTC


README

这是一个非常新的软件包,请报告任何问题。

此 Symfony 2 软件包允许您在资产中(如 JavaScript 和 CSS 文件)使用容器参数,只要这些资产可以通过 Assetic 编译。在使用此软件包之前,您需要熟悉 Assetic。

提供了两个 Assetic 过滤器:configconfig-json。唯一的区别是 config-json 会将输出值 JSON 编码。

使用方法

使用 Composer 安装

composer require fazy/assetic-config-bundle:dev-master

将以下行添加到 app/AppKernel.php 中的 registerBundles()

public function registerBundles()
{
    $bundles = array(
        // ...
        new Fazy\AsseticConfigBundle\FazyAsseticConfigBundle(),
    );

    // ..
}

对于您想要使用配置值的任何资产,请确保它们通过以下方式在您的 Twig 模板中通过 configconfig-json 过滤器进行过滤

{% javascripts filter="config-json"
    '@MyBundle/Resources/public/js/config.js'
%}
    <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

在此示例中,只包含一个脚本,config.js。它通过 config-json 过滤器进行过滤。

在资产文件中,您可以使用 __config__<config>__ 模式插入任何配置项,例如

// app/config/parameters.yml
my_bundle.foo.bar: Hello12345!

// MyBundle/Resources/public/js/config.js
MY_BUNDLE_CONFIG = {
    "foo": {
        "bar": __config__my_bundle.foo.bar__
    },
};

这应该会导致以下代码被发送到客户端(值的双引号是 JSON 编码的结果)

MY_BUNDLE_CONFIG = {
    "foo": {
        "bar": "Hello12345!"
    },
};

不言而喻,您不应以这种方式输出任何敏感配置值!

配置

目前没有配置选项,但您可以扩展类 Fazy\AsseticConfigBundle\Assetic\Filter\ConfigFilter

// app/config/parameters.yml
parameters:
    fazy_assetic_config.filter_class: MyBundle\Assetic\Filter\ConfigFilter

// MyBundle/Assetic/Filter/ConfigFilter.php
namespace MyBundle\Assetic\Filter\ConfigFilter;
use Fazy\AsseticConfigBundle\Assetic\Filter\ConfigFilter as BaseConfigFilter

class ConfigFilter extends BaseConfigFilter
{
    // ...
}

您还可以创建自己的服务,例如注入不同的输出编码器而不是提供的 JsonEncoder。请参阅软件包中的 Resources/services.xml