Я что-то упускаю, или документация по компоненту Symfony Config вводит в заблуждение относительно корневого узла конфигурации?
В разделе « Определение и обработка значений конфигурации» в документации для компонента Symfony Config подразумевается, что имя корневого узла, которое вы передаете в
TreeBuilder
конструктор будет рассматриваться как узел в корне конфигураций, переданных процессору, а не как корень самих объектов.
Конечно, похоже, что при загрузке файлов в контейнер все обрабатывается таким образом, но следующий код следует тому, что я понимаю в документации, которую нужно описывать, но вызывает
InvalidConfigurationException
требуя нераспознанной опции "foo" под "foo". Доступный вариант - «планка». на всех поддерживаемых в настоящее время версиях Symfony.
Я сбит с толку; может кто-нибудь, пожалуйста, помогите мне понять, что здесь происходит?
class Config implements \Symfony\Component\Config\Definition\ConfigurationInterface
{
public function getConfigTreeBuilder()
{
$builder = new \Symfony\Component\Config\Definition\Builder\TreeBuilder('foo');
$builder->getRootNode()
->children()
->scalarNode('bar')->end()
->end();
return $builder;
}
}
$config = new Config();
$processor = new \Symfony\Component\Config\Definition\Processor();
$a = ['foo' => ['bar' => 'a']];
$b = ['foo' => ['bar' => 'b']];
$c = $processor->processConfiguration($config, [$a, $b]);