Я хотел бы добавить простой список значений в файлы конфигурации (config.yml). Например :
my_bundle: columns: ["col1", "col2"]
При добавлении узла в парсер конфигурации он просто терпит неудачу:
$rootNode = $treeBuilder->root('my_bundle'); $rootNode->arrayNode('columns')->children()->end();
Вот ошибка:
InvalidConfigurationException: Unrecognized options "0, 1" under "my_bundle.columns"
Что мне не хватает? Возможно ли это?
Если вы хотите создать такой узел, просто выполните:
$rootNode ->children() ->arrayNode('columns') ->prototype('scalar') ->end() ->end() ->end() ;
Я думаю, что вам не хватает того, что YaML не является языком разметки, это даже не langauge как таковой (это стандарт сериализации данных), поэтому он не знает каких-либо языковых конструкций, например массивов. Его основным «инструментом» для выражения группировки и отношений между битами данных является пробел, двоеточия и тире.
На странице документации Symfony формата YaML :
my_bundle: columns: - col1 - col2
Как я понимаю из этого раздела:
Файл YAML редко используется для описания простого скаляра. В большинстве случаев он описывает коллекцию. Коллекция может быть последовательностью или отображением элементов. Обе последовательности и сопоставления преобразуются в массивы PHP.
Последовательности используют тире, а затем пробел:
-
PHP
-
Perl
-
PythonПредыдущий файл YAML эквивалентен следующему PHP-коду:
array('PHP', 'Perl', 'Python');