Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Symfony2: how to read parameters array in config.yml

Tags:

php

yaml

symfony

my parameters.yml file has:

parameters:
     title:
          subtitle: value

i want to pass the value to a service in config.yml

my_service:
        class: the_class
        arguments: [ %title.subtitle%] //didn't work
        arguments: [ %title['subtitle']%] //didn't work

how can i do this?

like image 230
trrrrrrm Avatar asked Nov 12 '13 02:11

trrrrrrm


2 Answers

Symfony2 doesn't support reading individual elements on a parameter array using the % notation. What you are doing is not possible out of the box.

The only way to do that would be to create your own Symfony\Component\DependencyInjection\ParameterBag\ParameterBag which would support fetching an array item.

like image 104
Andrew Moore Avatar answered Nov 11 '22 16:11

Andrew Moore


The % notation doesn't work but it can be accomplished the following way:

my_service:
    class: the_class
    arguments: ["@=container.getParameter('title')['subtitle']"]

It works at least for symfony 2.7.3

More info about the expression language can be found in the cookbook: http://symfony.com/doc/current/book/service_container.html#using-the-expression-language

like image 34
user725408 Avatar answered Nov 11 '22 18:11

user725408