fazy / assetic-config-bundle
将占位符替换为 Symfony 2 配置值的 Assetic 过滤器。
该软件包的官方仓库似乎已删除,因此该软件包已被冻结。
Requires
- php: >=5.3.2
- symfony/symfony: >=2.3
This package is not auto-updated.
Last update: 2019-06-09 02:03:06 UTC
README
这是一个非常新的软件包,请报告任何问题。
此 Symfony 2 软件包允许您在资产中(如 JavaScript 和 CSS 文件)使用容器参数,只要这些资产可以通过 Assetic 编译。在使用此软件包之前,您需要熟悉 Assetic。
提供了两个 Assetic 过滤器:config 和 config-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 模板中通过 config 或 config-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。