+ ->arrayNode('apps')
+ ->treatNullLike([])
+ ->defaultValue($defaults['facebook']['apps'])
+ ->scalarPrototype()->end()
+ ->end()
+ ->integerNode('height')->min(0)->defaultValue($defaults['facebook']['height'])->end()
+ ->integerNode('width')->min(0)->defaultValue($defaults['facebook']['width'])->end()
+ ->end()
+ ->end()
+ ->arrayNode('icon')
+ ->addDefaultsIfNotSet()
+ ->children()
+ ->scalarNode('ico')->defaultValue($defaults['icon']['ico'])->end()
+ ->scalarNode('png')->defaultValue($defaults['icon']['png'])->end()
+ ->scalarNode('svg')->defaultValue($defaults['icon']['svg'])->end()
+ ->end()
+ ->end()
+ #TODO: see if we can't prevent key normalisation with ->normalizeKeys(false)
+ #->scalarNode('languages')->cannotBeEmpty()->defaultValue($defaults['languages'])->end()
+ ->variableNode('languages')
+ ->treatNullLike([])
+ ->defaultValue($defaults['languages'])
+ #->scalarPrototype()->end()
+ ->end()
+ ->scalarNode('locale')->cannotBeEmpty()->defaultValue($defaults['locale'])->end()
+ #TODO: see if we can't prevent key normalisation with ->normalizeKeys(false)
+ #->scalarNode('locales')->cannotBeEmpty()->defaultValue($defaults['locales'])->end()
+ ->variableNode('locales')
+ ->treatNullLike([])
+ ->defaultValue($defaults['locales'])
+ #->scalarPrototype()->end()
+ ->end()
+ ->arrayNode('logo')
+ ->addDefaultsIfNotSet()
+ ->children()
+ ->scalarNode('alt')->defaultValue($defaults['logo']['alt'])->end()
+ ->scalarNode('png')->defaultValue($defaults['logo']['png'])->end()
+ ->scalarNode('svg')->defaultValue($defaults['logo']['svg'])->end()