+ ->end()
+ ->end()
+ ->end()
+ ->end()
+ ->arrayNode('translate')
+ ->treatNullLike([])
+ ->defaultValue($defaults['translate'])
+ ->scalarPrototype()->end()
+ ->end()
+ #TODO: see if we can't prevent key normalisation with ->normalizeKeys(false)
+ ->arrayNode('languages')
+ ->treatNullLike([])
+ ->defaultValue($defaults['languages'])
+ ->scalarPrototype()->end()
+ ->end()
+ ->arrayNode('contact')
+ ->addDefaultsIfNotSet()
+ ->children()
+ ->scalarNode('address')->cannotBeEmpty()->defaultValue($defaults['contact']['address'])->end()
+ ->scalarNode('name')->cannotBeEmpty()->defaultValue($defaults['contact']['name'])->end()
+ ->end()
+ ->end()
+ ->arrayNode('context')
+ ->treatNullLike([])
+ ->defaultValue($defaults['context'])
+ ->variablePrototype()->end()
+ ->end()
+ ->arrayNode('edit')
+ ->addDefaultsIfNotSet()
+ ->children()
+ ->arrayNode('field')
+ ->treatNullLike([])
+ ->defaultValue($defaults['edit']['field'])
+ ->variablePrototype()->end()
+ ->end()
+ ->arrayNode('route')
+ ->treatNullLike([])
+ ->defaultValue($defaults['edit']['route'])
+ ->scalarPrototype()->end()
+ ->end()
+ ->arrayNode('view')
+ ->addDefaultsIfNotSet()
+ ->children()
+ ->scalarNode('edit')->cannotBeEmpty()->defaultValue($defaults['edit']['view']['edit'])->end()
+ ->scalarNode('reset')->cannotBeEmpty()->defaultValue($defaults['edit']['view']['reset'])->end()
+ ->scalarNode('name')->cannotBeEmpty()->defaultValue($defaults['edit']['view']['name'])->end()