Symfony2: как читать массив параметров в config.yml

В моем файле parameters.yml есть:

parameters:
     title:
          subtitle: value

Я хочу передать value службе в config.yml

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

как я могу это сделать?

Ответ 1

Нотация % не работает, но ее можно выполнить следующим образом:

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

Он работает как минимум для symfony 2.7.3

Более подробную информацию о языке выражений можно найти в кулинарной книге: http://symfony.com/doc/current/book/service_container.html#using-the-expression-language

Ответ 2

Symfony2 не поддерживает чтение отдельных элементов массива параметров с использованием нотации %. То, что вы делаете, невозможно из коробки.

Единственный способ сделать это - создать собственный Symfony\Component\DependencyInjection\ParameterBag\ParameterBag, который будет поддерживать выборку элемента массива.