Dzięki Symfony2 TreeBuilder możliwe jest konfigurowanie prototypów dla każdego węzła wewnątrz węzła macierzy, np. wspierać konfigurację jakZagnieżdżone prototypy w konfiguracji Symfony2
foo:
xxx: { foo: bar}
yyy: { foo: bar}
Jeżeli istnieją dowolną liczbę xxx yyy i tak dalej (każda wartość w ogóle) węzłów za pomocą struktury jak
$rootNode
->arrayNode('foo')
->prototype('array')
->children()
->scalarNode('foo')
Chciałbym utworzyć kolejny poziom to samo, bez wprowadzania kolejnego węzła między nimi, np do wspierania konfiguracji jak
foo:
xxx:
aaa: { foo: bar}
bbb: { foo: bar}
yyy:
ccc: { foo: bar}
ddd: { foo: bar}
gdzie może być dowolna ilość, xxx i yyy itd węzłów, z których każdy może zawierać dowolną liczbę innych AAA BBB itp węzłów.
Czy jest jakiś sposób, aby to osiągnąć? Wywołanie ->prototype()
bezpośrednio pod ->children()
innego połączenia prototypowego nie działa, ponieważ prototypy nie obsługują zagnieżdżonych prototypów. W związku z tym muszę podać konkretne wartości dla xxx i yyy, ograniczając elastyczność pakietu, który piszę.
Czy wiesz, dlaczego to nie jest obowiązkowe korzystać dzieci w tym przypadku? Po prostu natknąłem się na ten problem i wydawało się konsekwentne używać dzieci w tym przypadku. – k0pernikus
@ k0pernikus Przypuszczam, że ponieważ prototyp oznacza dowolną liczbę elementów. –