. */ namespace vierbergenlars\AuthserverOAuthAccountBundle\DependencyInjection; use Symfony\Component\Config\Definition\Builder\TreeBuilder; use Symfony\Component\Config\Definition\ConfigurationInterface; /** * This is the class that validates and merges configuration from your app/config files * * To learn more see {@link http://symfony.com/doc/current/cookbook/bundles/extension.html#cookbook-bundles-extension-config-class} */ class Configuration implements ConfigurationInterface { /** * {@inheritDoc} */ public function getConfigTreeBuilder() { $treeBuilder = new TreeBuilder(); $rootNode = $treeBuilder->root('oauth'); $rootNode->children() ->arrayNode('resource_owners') ->useAttributeAsKey('name') ->prototype('array') ->children() ->arrayNode('config') ->ignoreExtraKeys(false) ->end() ->scalarNode('service_name')->isRequired()->end() ->scalarNode('icon')->defaultNull()->end() ->arrayNode('login_button') ->addDefaultsIfNotSet() ->children() ->scalarNode('label')->defaultNull()->end() ->scalarNode('style')->defaultValue('default')->end() ->scalarNode('icon')->defaultNull()->end() ->end() ->end() ->arrayNode('connect_button') ->addDefaultsIfNotSet() ->children() ->scalarNode('label')->defaultNull()->end() ->scalarNode('style')->defaultValue('default')->end() ->scalarNode('icon')->defaultNull()->end() ->end() ->end() ->end() ->end() ; // Here you should define the parameters that are allowed to // configure your bundle. See the documentation linked above for // more information on that topic. return $treeBuilder; } }