private function getDbalConnectionsNode()
    {
        $treeBuilder = new TreeBuilder('connections');

        if (method_exists($treeBuilder, 'getRootNode')) {
            $node = $treeBuilder->getRootNode();
        } else {
            // BC layer for symfony/config 4.1 and older
            $node = $treeBuilder->root('connections');
        }

        /** @var ArrayNodeDefinition $connectionNode */
        $connectionNode = $node
            ->requiresAtLeastOneElement()
            ->useAttributeAsKey('name')
            ->prototype('array');

        $this->configureDbalDriverNode($connectionNode);

        $connectionNode
            ->fixXmlConfig('option')
            ->fixXmlConfig('mapping_type')
            ->fixXmlConfig('slave')
            ->fixXmlConfig('shard')
            ->fixXmlConfig('default_table_option')
            ->children()
                ->scalarNode('driver')->defaultValue('pdo_mysql')->end()
                ->scalarNode('platform_service')->end()
                ->booleanNode('auto_commit')->end()
                ->scalarNode('schema_filter')->end()
                ->booleanNode('logging')->defaultValue($this->debug)->end()
                ->booleanNode('profiling')->defaultValue($this->debug)->end()
                ->scalarNode('server_version')->end()
                ->scalarNode('driver_class')->end()
                ->scalarNode('wrapper_class')->end()
                ->scalarNode('shard_manager_class')->end()
                ->scalarNode('shard_choser')->end()
                ->scalarNode('shard_choser_service')->end()
                ->booleanNode('keep_slave')->end()
                ->arrayNode('options')
                    ->useAttributeAsKey('key')
                    ->prototype('scalar')->end()
                ->end()
                ->arrayNode('mapping_types')
                    ->useAttributeAsKey('name')
                    ->prototype('scalar')->end()
                ->end()
                ->arrayNode('default_table_options')
                    ->info("This option is used by the schema-tool and affects generated SQL. Possible keys include 'charset','collate', and 'engine'.")
                    ->useAttributeAsKey('name')
                    ->prototype('scalar')->end()
                ->end()
            ->end();

        $slaveNode = $connectionNode
            ->children()
                ->arrayNode('slaves')
                    ->useAttributeAsKey('name')
                    ->prototype('array');
        $this->configureDbalDriverNode($slaveNode);

        $shardNode = $connectionNode
            ->children()
                ->arrayNode('shards')
                    ->prototype('array')
                    ->children()
                        ->integerNode('id')
                            ->min(1)
                            ->isRequired()
                        ->end()
                    ->end();
        $this->configureDbalDriverNode($shardNode);

        return $node;
    }
private function getDbalConnectionsNode()
    {
        $treeBuilder = new TreeBuilder('connections');

        if (method_exists($treeBuilder, 'getRootNode')) {
            $node = $treeBuilder->getRootNode();
        } else {
            // BC layer for symfony/config 4.1 and older
            $node = $treeBuilder->root('connections');
        }

        /** @var ArrayNodeDefinition $connectionNode */
        $connectionNode = $node
            ->requiresAtLeastOneElement()
            ->useAttributeAsKey('name')
            ->prototype('array');

        $this->configureDbalDriverNode($connectionNode);

        $connectionNode
            ->fixXmlConfig('option')
            ->fixXmlConfig('mapping_type')
            ->fixXmlConfig('slave')
            ->fixXmlConfig('shard')
            ->fixXmlConfig('default_table_option')
            ->children()
                ->scalarNode('driver')->defaultValue('pdo_mysql')->end()
                ->scalarNode('platform_service')->end()
                ->booleanNode('auto_commit')->end()
                ->scalarNode('schema_filter')->end()
                ->booleanNode('logging')->defaultValue($this->debug)->end()
                ->booleanNode('profiling')->defaultValue($this->debug)->end()
                ->scalarNode('server_version')->end()
                ->scalarNode('driver_class')->end()
                ->scalarNode('wrapper_class')->end()
                ->scalarNode('shard_manager_class')->end()
                ->scalarNode('shard_choser')->end()
                ->scalarNode('shard_choser_service')->end()
                ->booleanNode('keep_slave')->end()
                ->arrayNode('options')
                    ->useAttributeAsKey('key')
                    ->prototype('scalar')->end()
                ->end()
                ->arrayNode('mapping_types')
                    ->useAttributeAsKey('name')
                    ->prototype('scalar')->end()
                ->end()
                ->arrayNode('default_table_options')
                    ->info("This option is used by the schema-tool and affects generated SQL. Possible keys include 'charset','collate', and 'engine'.")
                    ->useAttributeAsKey('name')
                    ->prototype('scalar')->end()
                ->end()
            ->end();

        $slaveNode = $connectionNode
            ->children()
                ->arrayNode('slaves')
                    ->useAttributeAsKey('name')
                    ->prototype('array');
        $this->configureDbalDriverNode($slaveNode);

        $shardNode = $connectionNode
            ->children()
                ->arrayNode('shards')
                    ->prototype('array')
                    ->children()
                        ->integerNode('id')
                            ->min(1)
                            ->isRequired()
                        ->end()
                    ->end();
        $this->configureDbalDriverNode($shardNode);

        return $node;
    }
private function getDbalConnectionsNode ( ) { $ treeBuilder = new TreeBuilder ( 'connections' ) ; if ( method_exists ( $ treeBuilder , 'getRootNode' ) ) { $ node = $ treeBuilder -> getRootNode ( ) ; } else { // BC layer for symfony/config 4.1 and older $ node = $ treeBuilder -> root ( 'connections' ) ; } /** @var ArrayNodeDefinition $connectionNode */ $ connectionNode = $ node -> requiresAtLeastOneElement ( ) -> useAttributeAsKey ( 'name' ) -> prototype ( 'array' ) ; $ this -> configureDbalDriverNode ( $ connectionNode ) ; $ connectionNode -> fixXmlConfig ( 'option' ) -> fixXmlConfig ( 'mapping_type' ) -> fixXmlConfig ( 'slave' ) -> fixXmlConfig ( 'shard' ) -> fixXmlConfig ( 'default_table_option' ) -> children ( ) -> scalarNode ( 'driver' ) -> defaultValue ( 'pdo_mysql' ) -> end ( ) -> scalarNode ( 'platform_service' ) -> end ( ) -> booleanNode ( 'auto_commit' ) -> end ( ) -> scalarNode ( 'schema_filter' ) -> end ( ) -> booleanNode ( 'logging' ) -> defaultValue ( $ this -> debug ) -> end ( ) -> booleanNode ( 'profiling' ) -> defaultValue ( $ this -> debug ) -> end ( ) -> scalarNode ( 'server_version' ) -> end ( ) -> scalarNode ( 'driver_class' ) -> end ( ) -> scalarNode ( 'wrapper_class' ) -> end ( ) -> scalarNode ( 'shard_manager_class' ) -> end ( ) -> scalarNode ( 'shard_choser' ) -> end ( ) -> scalarNode ( 'shard_choser_service' ) -> end ( ) -> booleanNode ( 'keep_slave' ) -> end ( ) -> arrayNode ( 'options' ) -> useAttributeAsKey ( 'key' ) -> prototype ( 'scalar' ) -> end ( ) -> end ( ) -> arrayNode ( 'mapping_types' ) -> useAttributeAsKey ( 'name' ) -> prototype ( 'scalar' ) -> end ( ) -> end ( ) -> arrayNode ( 'default_table_options' ) -> info ( "This option is used by the schema-tool and affects generated SQL. Possible keys include 'charset','collate', and 'engine'." ) -> useAttributeAsKey ( 'name' ) -> prototype ( 'scalar' ) -> end ( ) -> end ( ) -> end ( ) ; $ slaveNode = $ connectionNode -> children ( ) -> arrayNode ( 'slaves' ) -> useAttributeAsKey ( 'name' ) -> prototype ( 'array' ) ; $ this -> configureDbalDriverNode ( $ slaveNode ) ; $ shardNode = $ connectionNode -> children ( ) -> arrayNode ( 'shards' ) -> prototype ( 'array' ) -> children ( ) -> integerNode ( 'id' ) -> min ( 1 ) -> isRequired ( ) -> end ( ) -> end ( ) ; $ this -> configureDbalDriverNode ( $ shardNode ) ; return $ node ; }
Return the dbal connections node

@return ArrayNodeDefinition
Return the dbal connections node