0

在Symfony Config 组件文档中的定义和处理配置值下,暗示您传递给TreeBuilder构造函数的根节点名称将被视为处理器传递的配置的根节点,而不是对象本身。

将文件加载到容器中时,似乎确实是以这种方式处理的,但以下代码遵循我理解的文档所描述的内容,但在“foo”下抛出了一个InvalidConfigurationException声称无法识别的选项“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]);
4

0 回答 0