我创建了一个Configuration类,我构建了一个树,用于定义该类中的配置,同时创建一个我喜欢的子节点:
->children()
->scalarNode('node1')
->isRequired()
->cannotBeEmpty()->defaultValue('em_profession_label')->end()
->arrayNode('node2')
->isRequired()
->requiresAtLeastOneElement()
->useAttributeAsKey('id')
->prototype('array')
.....
现在我的问题是当我需要在我的yml文件中添加一个新的子节点,所以我必须一遍又一遍地重复上面的代码,然后我正在寻找一个解决方案,当我添加一个新的子节点时自动执行不在我的配置类中添加新代码......
答案 0 :(得分: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