DependencyInjection/Configuration/Configuration.php
/**
     * Adds the snc_redis.clients configuration
     *
     * @param ArrayNodeDefinition $rootNode
     */
Adds the snc_redis.clients configuration
@param ArrayNodeDefinition $rootNode
Adds the snc_redis . clients configuration @param ArrayNodeDefinition $rootNode
private function addClientsSection(ArrayNodeDefinition $rootNode)
    {
        $rootNode
            ->fixXmlConfig('client')
            ->children()
                ->arrayNode('clients')
                    ->isRequired()
                    ->requiresAtLeastOneElement()
                    ->useAttributeAsKey('alias', false)
                    ->prototype('array')
                        ->fixXmlConfig('dsn')
                        ->children()
                            ->scalarNode('type')->isRequired()
                                ->validate()
                                    ->ifTrue(function($v) { return !in_array($v, array('predis', 'phpredis')); })
                                    ->thenInvalid('The redis client type %s is invalid.')
                                ->end()
                            ->end()
                            ->scalarNode('alias')->isRequired()->end()
                            ->booleanNode('logging')->defaultValue($this->debug)->end()
                            ->arrayNode('dsns')
                                ->isRequired()
                                ->performNoDeepMerging()
                                ->beforeNormalization()
                                    ->ifString()->then(function($v) { return (array) $v; })
                                ->end()
                                ->beforeNormalization()
                                    ->always()->then(function($v) {
                                        return array_map(function($dsn) {
                                            $parsed = new RedisDsn($dsn);
                                            return $parsed->isValid() ? $parsed : $dsn;
                                        }, $v);
                                    })
                                ->end()
                                ->prototype('variable')
                                    ->validate()
                                        ->ifTrue(function($v) { return is_string($v); })
                                        ->thenInvalid('The redis DSN %s is invalid.')
                                    ->end()
                                ->end()
                            ->end()
                            ->scalarNode('alias')->isRequired()->end()
                            ->arrayNode('options')
                                ->addDefaultsIfNotSet()
                                ->children()
                                    ->booleanNode('connection_async')->defaultFalse()->end()
                                    ->booleanNode('connection_persistent')->defaultFalse()->end()
                                    ->scalarNode('connection_timeout')->defaultValue(5)->end()
                                    ->scalarNode('read_write_timeout')->defaultNull()->end()
                                    ->booleanNode('iterable_multibulk')->defaultFalse()->end()
                                    ->booleanNode('throw_errors')->defaultTrue()->end()
                                    ->scalarNode('profile')->defaultValue('2.4')
                                        ->beforeNormalization()
                                            ->ifTrue(function($v) { return false === is_string($v); })
                                            ->then(function($v) { return sprintf('%.1F', $v); })
                                        ->end()
                                    ->end()
                                    ->scalarNode('cluster')->defaultNull()->end()
                                    ->scalarNode('prefix')->defaultNull()->end()
                                    ->scalarNode('replication')->defaultNull()->end()
                                    ->scalarNode('service')->defaultFalse()->end()
                                    ->arrayNode('parameters')
                                        ->children()
                                            ->scalarNode('password')->defaultNull()->end()
                                        ->end()
                                    ->end()
                                ->end()
                            ->end()
                        ->end()
                    ->end()
                ->end()
            ->end();
    }
private function addClientsSection ( ArrayNodeDefinition $ rootNode ) { $ rootNode -> fixXmlConfig ( 'client' ) -> children ( ) -> arrayNode ( 'clients' ) -> isRequired ( ) -> requiresAtLeastOneElement ( ) -> useAttributeAsKey ( 'alias' , false ) -> prototype ( 'array' ) -> fixXmlConfig ( 'dsn' ) -> children ( ) -> scalarNode ( 'type' ) -> isRequired ( ) -> validate ( ) -> ifTrue ( function ( $ v ) { return ! in_array ( $ v , array ( 'predis' , 'phpredis' ) ) ; } ) -> thenInvalid ( 'The redis client type %s is invalid.' ) -> end ( ) -> end ( ) -> scalarNode ( 'alias' ) -> isRequired ( ) -> end ( ) -> booleanNode ( 'logging' ) -> defaultValue ( $ this -> debug ) -> end ( ) -> arrayNode ( 'dsns' ) -> isRequired ( ) -> performNoDeepMerging ( ) -> beforeNormalization ( ) -> ifString ( ) -> then ( function ( $ v ) { return ( array ) $ v ; } ) -> end ( ) -> beforeNormalization ( ) -> always ( ) -> then ( function ( $ v ) { return array_map ( function ( $ dsn ) { $ parsed = new RedisDsn ( $ dsn ) ; return $ parsed -> isValid ( ) ? $ parsed : $ dsn ; } , $ v ) ; } ) -> end ( ) -> prototype ( 'variable' ) -> validate ( ) -> ifTrue ( function ( $ v ) { return is_string ( $ v ) ; } ) -> thenInvalid ( 'The redis DSN %s is invalid.' ) -> end ( ) -> end ( ) -> end ( ) -> scalarNode ( 'alias' ) -> isRequired ( ) -> end ( ) -> arrayNode ( 'options' ) -> addDefaultsIfNotSet ( ) -> children ( ) -> booleanNode ( 'connection_async' ) -> defaultFalse ( ) -> end ( ) -> booleanNode ( 'connection_persistent' ) -> defaultFalse ( ) -> end ( ) -> scalarNode ( 'connection_timeout' ) -> defaultValue ( 5 ) -> end ( ) -> scalarNode ( 'read_write_timeout' ) -> defaultNull ( ) -> end ( ) -> booleanNode ( 'iterable_multibulk' ) -> defaultFalse ( ) -> end ( ) -> booleanNode ( 'throw_errors' ) -> defaultTrue ( ) -> end ( ) -> scalarNode ( 'profile' ) -> defaultValue ( '2.4' ) -> beforeNormalization ( ) -> ifTrue ( function ( $ v ) { return false === is_string ( $ v ) ; } ) -> then ( function ( $ v ) { return sprintf ( '%.1F' , $ v ) ; } ) -> end ( ) -> end ( ) -> scalarNode ( 'cluster' ) -> defaultNull ( ) -> end ( ) -> scalarNode ( 'prefix' ) -> defaultNull ( ) -> end ( ) -> scalarNode ( 'replication' ) -> defaultNull ( ) -> end ( ) -> scalarNode ( 'service' ) -> defaultFalse ( ) -> end ( ) -> arrayNode ( 'parameters' ) -> children ( ) -> scalarNode ( 'password' ) -> defaultNull ( ) -> end ( ) -> end ( ) -> end ( ) -> end ( ) -> end ( ) -> end ( ) -> end ( ) -> end ( ) -> end ( ) ; }
Adds the snc_redis.clients configuration
 @param ArrayNodeDefinition $rootNode
Adds the snc_redis . clients configuration @param ArrayNodeDefinition $rootNode