0

私は 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 でそのようなことを行う標準的な方法がないことを確認したいですか?

更新: YUI や LESS のように、AsseticBundle でこれを行いたい

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」に置き換える別のフィルターを追加するには

4

1 に答える 1

1

簡単な解決策は、twig グローバルでパラメーターを参照することです。

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>
于 2012-07-12T12:40:21.477 に答える