我正在使用Symfony 2.1 dev并寻找从app / config / parameters.yml(ini)获取参数的最简单方法。
简单示例:
我在parameters.yml中有记录
parameters:
url: "http://domain.com"
然后我想以某种方式在静态js文件中使用它
var url = "{{ app.url }}"; // trying to avoid hardcode
此标记应替换为
之后来自coonfig的实际值app/console assetic:dump
所以最后的js会有
var url = "http://domain.com";
目前我正在考虑编写自己的控制台命令,但首先我要确保在Symfony2中没有任何标准方法可以执行此类操作,或者可能是某些可以阻止我的操作系统?
更新:我想用AsseticBundle做这件事,比如YUI和LESS
assetic:
debug: %kernel.debug%
use_controller: false
write_to: %kernel.root_dir%/../web
filters:
cssrewrite: ~
lessphp: ~
yui_js:
jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.6.jar"
yui_css:
jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.6.jar
添加另一个过滤器,将js文件中的标记{{app.url}}替换为实际的“http://domain.com”
答案 0 :(得分:1)
一个简单的解决方案是在twig globals中引用你的参数:
parameters:
url: "http://domain.com"
an_array:
twig: "is cool"
and: "symfony2 to"
twig:
globals:
app_parameters:
url: %url%
an_array: %an_array%
然后在你的模板中:
<script>
window.parameters = {{ app_parameters|json_encode|raw }};
</script>
将呈现如下内容:
<script>
window.parameters = {"url":"http://domain.com","an_array":{"twig":"is cool","and":"symfony2 to"}};
</script>