次の構成ツリーを使用します。
$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;
})
空の配列では、正規化前のコールバックが実行されないようです。