Symfony2中Assetic Bundle的Javascript输出变量

时间:2013-02-19 14:06:59

标签: symfony twig

这是我的代码:

{% block js %}
    {% javascripts filter='?yui_js' output='js/m/myfiles.js'
            '@MyBundle/Resources/public/js/m/one.js'
            '@MyBundle/Resources/public/js/m/two.js'
            '@MyBundle/Resources/public/js/m/three.js'
    %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

我希望能够根据变量更改输出值。

类似的东西:

{% set myOutput = 'js/m/myfiles_v2.js'%}
{% block js %}
    {% javascripts filter='?yui_js' output=myOutput
            '@MyBundle/Resources/public/js/m/one.js'
            '@MyBundle/Resources/public/js/m/two.js'
            '@MyBundle/Resources/public/js/m/three.js'
    %}
    <script type="text/javascript" src="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

但是,当我这样做时,我得到“意外的令牌”名称“有价值”myOutput“(”字符串“预期)。有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

我认为您需要创建自己的资产过滤器,它将扩展yui_js过滤器和覆盖函数以创建名称。

Assetic过滤器是一种服务实现FilterInterface。

以下是您过滤为服务的示例定义:

<service id="my.if.filter" class="MyBundle\FilterClass">
    <tag name="assetic.filter" alias="my_alias" />
    <argument></argument>
    <argument>....</argument>
</service>

这是一个教程:

http://richardmiller.co.uk/2011/05/24/symfony2-make-your-own-assetic-filter/