use Symfony\Component\Config\Definition\Builder\TreeBuilder; $treeBuilder = new TreeBuilder('database'); $rootNode = $treeBuilder->getRootNode(); $rootNode ->children() ->scalarNode('host') ->isRequired() ->end() ->integerNode('port') ->isRequired() ->end() ->scalarNode('username') ->isRequired() ->end() ->scalarNode('password') ->isRequired() ->end() ->end();
use Symfony\Component\Config\Definition\Builder\TreeBuilder; $treeBuilder = new TreeBuilder('site_settings'); $rootNode = $treeBuilder->getRootNode(); $rootNode ->children() ->scalarNode('site_name') ->isRequired() ->end() ->scalarNode('contact_email') ->isRequired() ->end() ->scalarNode('analytics_tracking_id') ->isRequired() ->end() ->scalarNode('logo_url') ->defaultValue('https://www.example.com/logo.png') ->end() ->arrayNode('social_media') ->scalarPrototype() ->end() ->end() ->arrayNode('google_analytics') ->children() ->scalarNode('tracking_code') ->isRequired() ->end() ->booleanNode('enable_display_advertising') ->defaultTrue() ->end() ->end() ->end() ->end();These examples illustrate how the TreeBuilder can be used to define a validation and normalization structure for an application's configuration options. The Symfony\Component\Config component is the package library that contains the TreeBuilder class.