2014-07-05 32 views
1

在Symfony2的文檔在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

您當前的實現將不起作用。

內部symfony會嘗試訪問array['1'](key = string)而不是array[1](key = int)。

考慮使用service factory其又產生與陣列作爲參數的所需元素的服務...

...或只是過濾在類的構造函數的數組元素。

+0

Thanks.just還有一件事:所以如果鍵是字符串和數組嵌套(有多個維度),它會工作嗎?只是問,因爲我想知道它是如何處理「點」在參數名稱,以解析它是否是參數名稱或密鑰的一部分。 – user2268997

相關問題