我有这个yml配置文件:
services:
myservice1: ~
myservice2: ~
My TreeBuilder is:
$rootNode
->children()
->arrayNode('services')
->useAttributeAsKey('serviceName')
->prototype('array')
->children()
->end()
->end()
->end()
->end()
;
但是如果可能的话,我希望使用下面的yml:
- myservice1: ~
- myservice2: ~
最后,我可以使用下面的树生成器
$rootNode = $this->treebuilder->root('DefaultConfigurationRules');
$rootNode
->isRequired()
->cannotBeEmpty()
->prototype('array')
->children()
//
这是不可能的,在Symfony2中没有意义,而且是一个可怕的反模式。"services"根节点由DPI组件处理,在它下面,DPI组件期望服务定义。所有根配置节点都由注册的配置处理程序专门处理,如服务、参数、安全、框架…在某种程度上,它就像一个编程语言语句。如果没有这样的名称空间,就会与其他配置参数发生冲突。您应该将所有配置参数包装在与bundle名称对应的具有适当命名空间的名称下。