Symfony2 TreeBuilder を使用すると、配列ノード内の各ノードのプロトタイプを構成できます。たとえば、次のような構成をサポートします。
foo:
xxx: { foo: bar}
yyy: { foo: bar}
次のような構造を使用して、任意の数の xxx、yyy など (任意の値) のノードがある場合
$rootNode
->arrayNode('foo')
->prototype('array')
->children()
->scalarNode('foo')
たとえば、次のような構成をサポートするために、間に別の名前付きノードを導入せずに、同じものの別のレベルを作成したいと思います
foo:
xxx:
aaa: { foo: bar}
bbb: { foo: bar}
yyy:
ccc: { foo: bar}
ddd: { foo: bar}
ここで、xxx、yyy などのノードはいくつでも存在でき、各ノードには、他の aaa、bbb などのノードをいくつでも含めることができます。
これを達成する方法はありますか?プロトタイプはネストされたプロトタイプをサポートしていないように見えるため、別のプロトタイプ呼び出しの直下での呼び出しは機能しません->prototype()
。->children()
その結果、xxx と yyy の特定の値をハードコーディングする必要があり、作成しているバンドルの柔軟性が制限されています。