Get the configuration tree builder.

@return \Symfony\Component\Config\Definition\Builder\TreeBuilder
960354
public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('bugsnag');

        $rootNode
            ->children()
                ->scalarNode('api_key')
                    ->defaultValue(getenv('BUGSNAG_API_KEY') ?: null)
                ->end()
                ->scalarNode('endpoint')
                    ->defaultValue(getenv('BUGSNAG_ENDPOINT') ?: null)
                ->end()
                ->booleanNode('callbacks')
                    ->defaultValue(true)
                ->end()
                ->booleanNode('user')
                    ->defaultValue(true)
                ->end()
                ->scalarNode('app_type')
                    ->defaultNull()
                ->end()
                ->scalarNode('app_version')
                    ->defaultNull()
                ->end()
                ->booleanNode('batch_sending')
                    ->defaultValue(true)
                ->end()
                ->scalarNode('hostname')
                    ->defaultNull()
                ->end()
                ->booleanNode('send_code')
                    ->defaultValue(true)
                ->end()
                ->scalarNode('release_stage')
                    ->defaultNull()
                ->end()
                ->scalarNode('strip_path')
                    ->defaultNull()
                ->end()
                ->scalarNode('project_root')
                    ->defaultNull()
                ->end()
                ->booleanNode('auto_notify')
                    ->defaultValue(true)
                ->end()
                ->scalarNode('resolver')
                    ->defaultValue(SymfonyResolver::class)
                ->end()
                ->scalarNode('factory')
                    ->defaultValue(ClientFactory::class)
                ->end()
                ->scalarNode('client')
                    ->defaultValue(Client::class)
                ->end()
                ->scalarNode('listener')
                    ->defaultValue(BugsnagListener::class)
                ->end()
                ->arrayNode('notify_release_stages')
                    ->prototype('scalar')->end()
                    ->treatNullLike([])
                    ->defaultValue([])
                ->end()
                ->arrayNode('filters')
                    ->prototype('scalar')->end()
                    ->treatNullLike([])
                    ->defaultValue([])
                ->end()
            ->end();

        return $treeBuilder;
    }
332925
public function getConfigTreeBuilder(): TreeBuilder
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root($this->root);

        $rootNode
            ->children()
            ->scalarNode('admin_class')->defaultValue(Admin::class)->end()
            ->scalarNode('action_class')->defaultValue(Action::class)->end()
            ->scalarNode('fallback_template_directory')->defaultNull()->end()
            ->append($this->getAdminConfigTreeBuilder())
            ->end();

        return $treeBuilder;
    }
162665
public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root($this->root);
        $rootNode
            ->children()
            ->booleanNode('enabled')->defaultTrue()->end()
            ->scalarNode('publication_event_class')->defaultValue('Sidus\PublishingBundle\Event\PublicationEvent')->end(
            )
            ->append($this->getQueueTreeBuilder())
            ->append($this->getPublishersTreeBuilder())
            ->end();

        return $treeBuilder;
    }
127741
public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $treeBuilder->root('majora_oauth_server')
            ->children()
                ->scalarNode('secret')
                    ->isRequired()
                    ->cannotBeEmpty()
                ->end()
                ->append($this->createTokenNode(
                    'access_token',
                    AccessToken::class,
                    AccessTokenInterface::class,
                    AccessTokenInterface::DEFAULT_TTL
                ))
                ->append($this->createTokenNode(
                    'refresh_token',
                    RefreshToken::class,
                    RefreshTokenInterface::class,
                    RefreshTokenInterface::DEFAULT_TTL
                ))
                ->arrayNode('application')
                    ->isRequired()
                    ->children()
                        ->append($this->createDriverStrategyNode('loader'))
                        ->append($this->createDriverStrategyNode('repository'))
                    ->end()
                ->end()
                ->arrayNode('account')
                    ->isRequired()
                    ->children()
                        ->append($this->createDriverStrategyNode('loader'))
                        ->append($this->createDriverStrategyNode('repository'))
                    ->end()
                ->end()
            ->end()
        ;

        return $treeBuilder;
    }
1214181
public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('security');

        $rootNode
            ->addDefaultsIfNotSet()
            ->children()
            ->scalarNode('firewall')->isRequired()->end()
            ->arrayNode('authenticator')
                ->addDefaultsIfNotSet()
                ->children()
                    ->scalarNode('type')
                        ->isRequired()
                        ->validate()
                            ->ifNotInArray(array('username', 'closure'))
                            ->thenInvalid('Invalid security authenticator %s')
                        ->end()
                    ->end()
                    ->scalarNode('username')->end()
                    ->scalarNode('password')->end()
                ->end()
            ->end()
            ->scalarNode('login_path')->defaultValue('/login')->end()
            ->scalarNode('success_path')->defaultValue('/')->end()
            ->scalarNode('logout_path')->defaultValue('/logout')->end()
            ->scalarNode('token_session_key')->defaultValue('__nice.is_authenticated')->end()
            ->end();

        return $treeBuilder;
    }
1057963
public function getConfigTreeBuilder()
    {
        $builder = new TreeBuilder();
        $http    = $builder->root('http');
        {
            $http->children()->scalarNode('cache_dir')->defaultValue(null);
            $http->children()->booleanNode('behind_elb')->defaultValue(false);
            $http->children()->booleanNode('trust_cloudfront_ips')->defaultValue(false);
            $http->children()->variableNode('trusted_proxies');
            $http->children()->variableNode('trusted_header_set');
            $http->children()->variableNode('routing');
            $http->children()->variableNode('twig');
            $http->children()->variableNode('security');
            $http->children()->variableNode('cors');
            $http->children()->variableNode('view_handlers');
            $http->children()->variableNode('error_handlers');
            $http->children()->variableNode('injected_args');
            $http->children()->variableNode('middlewares');
            $http->children()->variableNode('providers');
        }
        
        return $builder;
    }
266577
public function getConfigTreeBuilder()
	{
		$treeBuilder = new TreeBuilder();

		$treeBuilder->root('framework')
				->children()
					->append($this->getLocalesDefinition())
					->append($this->getDoctrineDefinition())
					->append($this->getAuditDefinition())
					->append($this->getSessionDefinition())
					->append($this->getMailerDefinition())
					->append($this->getServicesDefinition())
				->end();

		return $treeBuilder;
	}
198546
public function getConfigTreeBuilder()
    {
        $tb = new TreeBuilder();

        return $tb
            ->root('atoum_atoum')
                ->children()
                    ->arrayNode('bundles')
                        ->useAttributeAsKey('name')
                        ->prototype('array')
                            ->children()
                                ->arrayNode('directories')
                                    ->defaultValue(array(
                                        'Tests/Units', 'Tests/Controller',
                                    ))
                                    ->prototype('scalar')
                                    ->end()
                                ->end()
                            ->end()
                        ->end()
                    ->end()
                ->end()
            ->end()
        ;
    }
1288630
public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('openclassrooms_cache');
        $rootNode
            ->children()
                ->arrayNode('provider')
                ->performNoDeepMerging()
                ->beforeNormalization()
                    ->ifString()
                    ->then(function($v) { return array($v => array()); })
                ->end()
                    ->children()
                        ->append($this->addArrayNode())
                        ->append($this->addRedisNode())
                    ->end()
                ->end()
            ->end()
            ->children()
                ->scalarNode('default_lifetime')
                    ->defaultValue(0)
                ->end()
            ->end();

        return $treeBuilder;
    }
91300
public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('lsw_memcache');
        $rootNode
            ->append($this->addSessionSupportSection())
            ->append($this->addDoctrineSection())
            ->append($this->addFirewallSection())
            ->append($this->addClientsSection())
        ;

        return $treeBuilder;
    }
480641
public function getConfigTreeBuilder(): TreeBuilder
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('flows');
        $rootNode
            ->useAttributeAsKey('name')
            ->arrayPrototype()
                ->children()
                    ->scalarNode('description')->isRequired()->cannotBeEmpty()->end()
                    ->arrayNode('producer')
                        ->children()
                            ->scalarNode('service')->isRequired()->end()
                        ->end()
                    ->end()
                    ->arrayNode('worker')
                        ->children()
                            ->scalarNode('service')->isRequired()->end()
                            ->integerNode('instances')->min(1)->defaultValue(1)->end()
                            ->integerNode('release_delay')->min(0)->defaultValue(0)->end()
                            ->integerNode('max_retry')->min(1)->defaultValue(5)->end()
                        ->end()
                    ->end()
                ->end()
            ->end()
        ;
        return $treeBuilder;
    }
657475
public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root('kitpages_chain');

        $this->addStepListSection($rootNode);
        $this->addChainListSection($rootNode);

        return $treeBuilder;
    }
1077024
public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder();
        $rootNode = $treeBuilder->root($this->alias);
        $rootNode
            ->validate()
                ->ifTrue(function($v) {
                    return !empty($v['enabled']) && empty($v['pools']);
                })
                ->thenInvalid('The child node "pools" at path "'.$this->alias.'" must be configured.')
            ->end()
            ->children()
                ->scalarNode('enabled')
                    ->defaultTrue()
                ->end()
                ->arrayNode('listeners')
                    ->addDefaultsIfNotSet()
                    ->children()
                        ->booleanNode('clear_entity_managers')->defaultTrue()->end()
                        ->booleanNode('clear_logs')->defaultTrue()->end()
                    ->end()
                ->end()
                ->arrayNode('pools')
                    ->requiresAtLeastOneElement()
                    ->validate()
                    ->ifTrue(function (array $value) {
                            return !array_key_exists('default', $value);
                    })
                        ->thenInvalid('Default service not present')
                    ->end()
                    ->prototype('array')
                        ->children()
                            ->scalarNode('send_driver')
                                ->isRequired()
                                ->validate()
                                ->ifTrue(function ($value) {
                                        return !preg_match('/^@[a-zA-Z\.\-0-9\_]+$/', $value);
                                })
                                    ->thenInvalid('Malformed service ID "%s"')
                                ->end()
                            ->end()
                        ->end()
                    ->end()
                ->end()
                ->arrayNode('routes')
                    ->normalizeKeys(false)
                    ->prototype('scalar')
                        ->isRequired()
                    ->end()
                ->end()
            ->end()
            ;

        return $treeBuilder;
    }
1073736
public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder('knp_menu');

        // Keep compatibility with symfony/config < 4.2
        if (method_exists($treeBuilder, 'getRootNode')) {
            $rootNode = $treeBuilder->getRootNode();
        } else {
            $rootNode = $treeBuilder->root('knp_menu');
        }

        $rootNode
            ->children()
                ->arrayNode('providers')
                    ->addDefaultsIfNotSet()
                    ->children()
                        ->booleanNode('builder_alias')->defaultTrue()->end()
                        ->booleanNode('container_aware')->defaultTrue()->end()
                        ->booleanNode('builder_service')->defaultTrue()->end()
                    ->end()
                ->end()
                ->arrayNode('twig')
                    ->addDefaultsIfNotSet()
                    ->canBeUnset()
                    ->children()
                        ->scalarNode('template')->defaultValue('@KnpMenu/menu.html.twig')->end()
                    ->end()
                ->end()
                ->booleanNode('templating')->defaultFalse()->end()
                ->scalarNode('default_renderer')->cannotBeEmpty()->defaultValue('twig')->end()
            ->end();

        return $treeBuilder;
    }
1146581
public function getConfigTreeBuilder()
    {
        $treeBuilder = new TreeBuilder('doctrine_mongodb');
        $rootNode    = method_exists(TreeBuilder::class, 'getRootNode') ? $treeBuilder->getRootNode() : $treeBuilder->root('doctrine_mongodb');

        $this->addDocumentManagersSection($rootNode);
        $this->addConnectionsSection($rootNode);
        $this->addResolveTargetDocumentsSection($rootNode);

        $rootNode
            ->children()
                ->scalarNode('proxy_namespace')->defaultValue('MongoDBODMProxies')->end()
                ->scalarNode('proxy_dir')->defaultValue('%kernel.cache_dir%/doctrine/odm/mongodb/Proxies')->end()
                ->scalarNode('auto_generate_proxy_classes')
                    ->defaultValue(ODMConfiguration::AUTOGENERATE_EVAL)
                    ->beforeNormalization()
                    ->always(static function ($v) {
                        if ($v === false) {
                            return ODMConfiguration::AUTOGENERATE_EVAL;
                        }

                        if ($v === true) {
                            return ODMConfiguration::AUTOGENERATE_FILE_NOT_EXISTS;
                        }

                        return $v;
                    })
                    ->end()
                ->end()
                ->scalarNode('hydrator_namespace')->defaultValue('Hydrators')->end()
                ->scalarNode('hydrator_dir')->defaultValue('%kernel.cache_dir%/doctrine/odm/mongodb/Hydrators')->end()
                ->scalarNode('auto_generate_hydrator_classes')
                    ->defaultValue(ODMConfiguration::AUTOGENERATE_NEVER)
                    ->beforeNormalization()
                    ->always(static function ($v) {
                        if ($v === false) {
                            return ODMConfiguration::AUTOGENERATE_NEVER;
                        }

                        if ($v === true) {
                            return ODMConfiguration::AUTOGENERATE_ALWAYS;
                        }

                        return $v;
                    })
                    ->end()
                ->end()
                ->scalarNode('persistent_collection_namespace')->defaultValue('PersistentCollections')->end()
                ->scalarNode('persistent_collection_dir')->defaultValue('%kernel.cache_dir%/doctrine/odm/mongodb/PersistentCollections')->end()
                ->scalarNode('auto_generate_persistent_collection_classes')->defaultValue(ODMConfiguration::AUTOGENERATE_NEVER)->end()
                ->scalarNode('fixture_loader')
                    ->defaultValue(ContainerAwareLoader::class)
                    ->beforeNormalization()
                        ->ifTrue(static function ($v) {
                            return ! ($v === ContainerAwareLoader::class || in_array(ContainerAwareLoader::class, class_parents($v)));
                        })
                        ->then(static function ($v) {
                            throw new LogicException(sprintf('The %s class is not a subclass of the ContainerAwareLoader', $v));
                        })
                    ->end()
                ->end()
                ->scalarNode('default_document_manager')->end()
                ->scalarNode('default_connection')->end()
                ->scalarNode('default_database')->defaultValue('default')->end()
                ->arrayNode('default_commit_options')
                    ->addDefaultsIfNotSet()
                    ->children()
                        ->booleanNode('j')->end()
                        ->integerNode('timeout')->end()
                        ->scalarNode('w')->end()
                        ->integerNode('wtimeout')->end()
                        // Deprecated options
                        ->booleanNode('fsync')->info('Deprecated. Please use the "j" option instead.')->end()
                        ->scalarNode('safe')->info('Deprecated. Please use the "w" option instead.')->end()
                    ->end()
                ->end()
            ->end();

        return $treeBuilder;
    }
31793
public function getConfigTreeBuilder()
    {
        $builder = new TreeBuilder();
        $cors    = $builder->root('cors');
        {
            $cors->children()->scalarNode('pattern')->isRequired();
            $cors->children()->variableNode('origins')->beforeNormalization()->ifString()->then(
                function ($v) {
                    return [$v];
                }
            );
            $cors->children()->variableNode('headers');
            $cors->children()->variableNode('headers_exposed');
            $cors->children()->integerNode('max_age')->defaultValue(86400);
            $cors->children()->booleanNode('credentials_allowed')->defaultValue(false);
        }

        return $builder;
    }
1214872
protected function getMailerConfigurationTreeBuilder()
    {
        $builder = new TreeBuilder();
        $node = $builder->root('mailer');
        $node
            ->children()
            ->scalarNode('company')->end()
            ->scalarNode('from_email')->end()
            ->scalarNode('from_name')->end()
            ->end();

        return $node;
    }