Symfony passing array of arguments to DI services via yml file

coderex picture coderex · Apr 13, 2018 · Viewed 8.7k times · Source

I'm using symfony 2.x and I have a class which accept and array of configurations from yml file

config.yml

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

MyClass.php

class {

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

 var_dump($config);

}

Output (this is working correctly)

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

But I want to pass one more value to the same array via yml - param2: 'myvalue2'

and the exprected output will be

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

How can I achieve this?

Answer

fxbt picture fxbt · Apr 13, 2018

Simply use a yaml array in your config.yml file:

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