Próbuję zdefiniować obiekt Configuration
. Udało mi się zdefiniować prototypowy węzeł macierzy (np. security.firewalls
). Moja tablica prototye ma wymagany element, ale chcę, aby w razie potrzeby dodano dowolne parametry do każdej tablicy.Umożliwianie dodatkowych, niezdefiniowanych opcji w tablicy konfiguracji podczas korzystania z klasy konfiguracyjnej Symfony2:
Moje pytanie brzmi: w jaki sposób mogę zezwolić na dodanie dodatkowych, niezdefiniowanych elementów do każdej tablicy prototypów?
Oto mój config:
acme_widget:
handlers:
handler_one:
service: handler.one.service
handler_two:
service: handler.two.service
extra_array:
- Extra 1
- Extra 2
extra_scalar: Extra 3
Oto moja klasa budowniczy:
/**
* Generates the configuration tree.
*
* @return TreeBuilder
*/
public function getConfigTreeBuilder()
{
$treeBuilder = new TreeBuilder;
$rootNode = $treeBuilder->root('acme_widget');
$rootNode
->children()
->arrayNode('handlers')
->useAttributeAsKey('service')
->prototype('array')
->children()
->scalarNode('service')->isRequired()->end()
->booleanNode('enabled')->defaultTrue()->end()
->end()
->end()
->end()
->end()
;
return $treeBuilder;
}
Dostaję "InvalidConfigurationException: opcje Nierozpoznane".
Alternatywą jest, aby zadzwonić '-> ignoreExtraKeys (false) 'na' -> prototypie ('tablica') '. – apfelbox