Symfony 2 YAML прохождения массивов - PullRequest
8 голосов
/ 15 февраля 2012

Интересно, где я могу получить дополнительную информацию о специальном синтаксисе, таком как @somevar или %somevar% в конфигурации yaml symfony2?

Например, использование @ определяет вызов службы, то есть, как мы передаем зависимости службам. %somevar%, с другой стороны, относится к значению уже определенного параметра с именем somevar.

Итак, если я сделаю:

parameters:
    custom: "some value"
    another: %custom%

, тогда another будет заполнено значением custom, которое в моем случае является "некоторым значением". У меня вопрос, где эти отношения задокументированы?

Моя особая потребность - иметь возможность ссылаться на элемент массива, что-то вроде %somevar[somekey]%, но этот синтаксис не работает.

Заранее спасибо!

РЕДАКТИРОВАТЬ: Я нашел это: Full merge key support. Full support for references, aliases, and full merge key. Don't repeat yourself by referencing common configuration bits.

в документации yaml, но нет документации по этому поводу ..

1 Ответ

0 голосов
/ 15 февраля 2012

То, что вы ищете, на самом деле связано не с самим Yaml, а с загрузчиком Yaml контейнера Inpendency Injection.

Если вы ищете документы по этому поводу, вот те, что для старого компонента (v1): http://components.symfony -project.org / dependency-инъекция / trunk / book / 05-Service-Description

Symfony2 поставляется с новым компонентом (основанным на тех же принципах).Вы можете найти официальные документы здесь: http://symfony.com/doc/current/book/service_container.html#service-parameters

Что касается вашей проблемы, вы не можете получить доступ к ключам параметров DI, вам придется затем сглаживать вручную.

Вы можете использовать расширение DI дляв соответствии с вашими потребностями, возьмите пример для некоторых пакетов, таких как: https://github.com/symfony/AsseticBundle/blob/master/DependencyInjection/AsseticExtension.php#L54 (возможно, не лучший пример).

...