使用Array的Single元素作为symfony2中的服务构造函数参数

时间:2014-07-05 06:58:37

标签: php arrays symfony dependency-injection parameter-passing

http://symfony.com/doc/current/components/dependency_injection/parameters.html的symfony2文档中,它指出参数(在服务定义中)可以定义为数组,例如:

parameters:
    foo.class:"Foo"
    foo.args:
        - arg1
        - arg2

我想知道如何将foo.args数组的单个元素传递给服务构造函数,即:

services:
    foo:
        class:"%foo.class%"
        arguments:["%foo.args.1%"] //this line is in question.does this resolve to
                                   //"arg1"?if not, what does?

1 个答案:

答案 0 :(得分:1)

您当前的实施工作不会奏效。

内部symfony会尝试访问array['1'](key = string)而不是array[1](key = int)。

考虑使用 service factory ,然后使用所需的数组元素作为参数创建服务...

...或者只是过滤类的构造函数中的数组元素。