2012-02-15 2 views
8

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

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

Так что, если я делаю:

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

тогда another будет заполняться со значением custom, что в моем случае это «некоторое значение». Мой вопрос: где эти отношения документированы?

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

Заранее благодарен!

EDIT: Я нашел это: Full merge key support. Full support for references, aliases, and full merge key. Don't repeat yourself by referencing common configuration bits.

в YAML документации, но не Furthur документации об этом ..

ответ

0

Что вы ищете на самом деле не о самой YAML, но о погрузчике YAML из контейнер для инъекций.

Если вы будете искать документы о нем, вот те, для старого компонента (v1): http://components.symfony-project.org/dependency-injection/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 (может быть, не лучший пример).

+0

Спасибо, ну, собственно, мне просто нужно было указать параметры внутри других параметров, чтобы избежать дублирования. Таким образом, это даже не до DI. Я узнал, что псевдонимы YAML могут сделать трюк, я просто должен отметить те записи, которые мне нужны, а затем ссылаться на них, как показано здесь: http://code.google.com/p/snakeyaml/wiki/Documentation#Aliases Не так как я и ожидал, но сделаю трюк. Спасибо, в любом случае! –

Смежные вопросы