【问题标题】:Using Single element of Array as service constructor argument in symfony2在 symfony2 中使用数组的单个元素作为服务构造函数参数
【发布时间】:2014-08-26 08:36:51
【问题描述】:

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?

【问题讨论】:

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


    【解决方案1】:

    您当前的实施将不起作用。

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

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

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

    【讨论】:

    • 谢谢。再做一件事:所以如果键是字符串并且数组是嵌套的(具有多个维度),它会起作用吗?只是问这个问题是因为我想知道它是如何处理参数名称中的“点”,以解析它是参数名称的一部分还是键的一部分。
    猜你喜欢
    • 2012-10-21
    • 1970-01-01
    • 2014-11-05
    • 1970-01-01
    • 2018-10-03
    • 2013-01-31
    • 2013-10-09
    相关资源
    最近更新 更多