Я что-то упускаю, или документация по компоненту 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]);

0 ответов

Другие вопросы по тегам