使用以下配置树:
$rootNode
->fixXmlConfig('parameter')
->children()
->arrayNode('parameters')
->useAttributeAsKey('name')
->prototype('array')
->children()
->scalarNode('type')->end()
->scalarNode('value')->end()
->end()
->end()
->end()
->end();
...即使我没有指定parameters
密钥,Symfony 也会添加一个空数组:
$config = $processor->processConfiguration($configuration, array());
var_dump($config); // Output is array('parameters' => array())
parameters
但如果没有参数,我希望密钥未设置、不存在。
我试过删除 中的键(如果为空)beforeNormalization
,但它不起作用:
$rootNode
->beforeNormalization()
->always(function ($v) {
if(empty($v['parameters'])) {
unset($v['parameters']);
}
return $v;
})
似乎对于一个空数组,之前的规范化回调永远不会执行。