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

Symfony passing array of arguments to DI services via yml file

我正在使用 symfony 2.x 并且我有一个 class 它接受来自 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再传递一个值给同一个数组 - 参数 2:'myvalue2'

预计输出为

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

我怎样才能做到这一点?

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

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

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

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

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