Snc\RedisBundle\DependencyInjection\SncRedisExtension::load PHP Method

load() public method

Loads the configuration.
public load ( array $configs, ContainerBuilder $container )
$configs array An array of configurations
$container Symfony\Component\DependencyInjection\ContainerBuilder A ContainerBuilder instance
    public function load(array $configs, ContainerBuilder $container)
    {
        $loader = new XmlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
        $loader->load('redis.xml');
        $mainConfig = $this->getConfiguration($configs, $container);
        $config = $this->processConfiguration($mainConfig, $configs);
        foreach ($config['class'] as $name => $class) {
            $container->setParameter(sprintf('snc_redis.%s.class', $name), $class);
        }
        foreach ($config['clients'] as $client) {
            $this->loadClient($client, $container);
        }
        if (isset($config['session'])) {
            $this->loadSession($config, $container, $loader);
        }
        if (isset($config['doctrine']) && count($config['doctrine'])) {
            $this->loadDoctrine($config, $container);
        }
        if (isset($config['monolog'])) {
            if (!empty($config['clients'][$config['monolog']['client']]['logging'])) {
                throw new InvalidConfigurationException(sprintf('You have to disable logging for the client "%s" that you have configured under "snc_redis.monolog.client"', $config['monolog']['client']));
            }
            $this->loadMonolog($config, $container);
        }
        if (isset($config['swiftmailer'])) {
            $this->loadSwiftMailer($config, $container);
        }
        if (isset($config['profiler_storage'])) {
            $this->loadProfilerStorage($config, $container, $loader);
        }
    }

Usage Example

コード例 #1
0
 public function testClientProfileOption()
 {
     $extension = new SncRedisExtension();
     $config = $this->parseYaml($this->getFullYamlConfig());
     $extension->load(array($config), $container = new ContainerBuilder());
     $options = $container->getDefinition('snc_redis.client.default_options')->getArgument(0);
     $this->assertSame((double) 2, $config['clients']['default']['options']['profile'], 'Profile version 2.0 was parsed as float');
     $this->assertSame('2.0', $options['profile'], 'Profile option was converted to a string');
 }
All Usage Examples Of Snc\RedisBundle\DependencyInjection\SncRedisExtension::load