Symfony通过yml文件将参数数组传递给DI服务

3npbholx  于 2022-11-16  发布在  其他
关注(0)|答案(3)|浏览(150)

我正在使用symfony 2.x,我有一个类,它接受来自yml文件的配置数组
config.yml

services:
  my_di: 
    class: \MyClass
    arguments:
      - param1: 'myvalue'

MyClass.php

class {

public function __construc(array $configs = []) {

 var_dump($config);

}

输出(工作正常)

array (size=1)
   param1 => 'myvalue'
)

但是我想通过yml -param 2再传递一个值给同一个数组:'我的值2'
并且预期输出将是

array (size=1)
   param1 => 'myvalue',
   param2 => 'myvalue2'
)

我如何才能做到这一点?

laximzn5

laximzn51#

只需在config.yml文件中使用一个yaml数组:

services:
  my_di: 
    class: \MyClass
    arguments:
      - { param1: 'myvalue', param2: 'myvalue2' }
jdgnovmf

jdgnovmf2#

您可以使用下列语法来达成此目的(不要在相关数组的每一列开头加上破折号-):

services:
  my_di: 
    class: \MyClass
    arguments:
      $configs:
        param1: 'myvalue'
        param2: 'myvalue2'
        param3: 'myvalue3'
wh6knrhe

wh6knrhe3#

我知道这与问题无关,但如果您需要注入一系列服务,可以这样做:

App\Service\MainService:
   arguments:
      $transformers:
        - '@App\Service\Transformers\ATransformerHandler'
        - '@App\Service\Transformers\BTransformerHandler'
        - '@App\Service\Transformers\CTransformerHandler'

$transformers是MainService的构造函数中的参数名称。

相关问题