我编写了自己的 Assetic 过滤器,包含在 Symfony2 Bundle 中,以便将 CommonJS 模块编译到单个文件中。它被称为cjsDeliveryBundle,但我们暂时把它放在一边。
我希望能够在我的config_dev.yml
和config_prod.yml
文件中的过滤器上设置不同的选项。
过滤器有一个 public setter: setMinifyIdentifiers
,它接受一个布尔值。我阅读了有关setter 注入的 Symfony2 文档,并将以下内容添加到我的config.yml
:
assetic:
filters:
cssrewrite: ~
cjs_delivery:
resource: "%kernel.root_dir%/../src/MattCG/cjsDeliveryBundle/Resources/config/services.xml"
calls:
- [ setMinifyIdentifiers, [ true ] ]
以下是services.xml
我的 Bundle。
<?xml version="1.0" ?>
<container xmlns="http://symfony.com/schema/dic/services"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">
<parameters>
<parameter key="matt_cg.cjs_delivery_filter.class">MattCG\cjsDeliveryBundle\Assetic\Filter\cjsDeliveryFilter</parameter>
<parameter key="matt_cg.cjs_delivery_filter.minify_identifiers">null</parameter>
</parameters>
<services>
<service id="matt_cg.cjs_delivery_filter" class="%matt_cg.cjs_delivery_filter.class%">
<tag name="assetic.filter" alias="cjs_delivery"></tag>
<call method="setMinifyIdentifiers">
<argument>%matt_cg.cjs_delivery_filter.minify_identifiers%</argument>
</call>
</service>
</services>
</container>
过滤器工作正常,除了 setter 永远不会true
作为参数调用。我究竟做错了什么?