0

我创建了一个配置类,并构建了一个在该类中定义我的配置的树,还创建了一个我喜欢的子节点:

->children()
    ->scalarNode('node1')
        ->isRequired()
        ->cannotBeEmpty()->defaultValue('em_profession_label')->end()
        ->arrayNode('node2') 
            ->isRequired()
            ->requiresAtLeastOneElement()
            ->useAttributeAsKey('id')
            ->prototype('array')
        .....

现在我的问题是当我需要在我的 yml 文件中添加一个新的子节点时,所以我必须一次又一次地重复上面的代码,然后我正在寻找一种解决方案来自动完成它,当我添加一个新的子节点而不添加一个我的配置类中的新代码...

4

1 回答 1

0

致电后,prototype()您可以指定每个子节点的外观。

//...
->arrayNode('nodes')
    ->prototype('array')
        ->children()
            ->scalarNode('option_name1')->end()
            ->scalarNode('option_name2')->end()
        ->end()
    ->end()
->end()
//...

这意味着在您的 YML 配置文件中,您可以定义任意数量的节点,只要它们与您在配置中映射的内容相匹配。例如...

nodes:
    node1:
        option_name1: somevalue
        option_name2: someothervalue
    node2:
        option_name1: somevalue
        option_name2: someothervalue
    node3:
        option_name1: somevalue
        option_name2: someothervalue
于 2012-09-24T12:41:43.137 回答