Kdyby\Doctrine\DI\OrmExtension::processSecondLevelCache PHP Метод

processSecondLevelCache() защищенный Метод

protected processSecondLevelCache ( $name, array $config, $isDefault )
$config array
    protected function processSecondLevelCache($name, array $config, $isDefault)
    {
        if (!$config['enabled']) {
            return;
        }
        $builder = $this->getContainerBuilder();
        $cacheFactory = $builder->addDefinition($this->prefix($name . '.cacheFactory'))->setClass('Doctrine\\ORM\\Cache\\CacheFactory')->setFactory($config['factoryClass'], [$this->prefix('@' . $name . '.cacheRegionsConfiguration'), $this->processCache($config['driver'], $name . '.secondLevel')])->setAutowired($isDefault);
        if ($config['factoryClass'] === $this->managerDefaults['secondLevelCache']['factoryClass'] || is_subclass_of($config['factoryClass'], $this->managerDefaults['secondLevelCache']['factoryClass'])) {
            $cacheFactory->addSetup('setFileLockRegionDirectory', [$config['fileLockRegionDirectory']]);
        }
        $builder->addDefinition($this->prefix($name . '.cacheRegionsConfiguration'))->setClass('Doctrine\\ORM\\Cache\\RegionsConfiguration', [$config['regions']['defaultLifetime'], $config['regions']['defaultLockLifetime']])->setAutowired($isDefault);
        $logger = $builder->addDefinition($this->prefix($name . '.cacheLogger'))->setClass('Doctrine\\ORM\\Cache\\Logging\\CacheLogger')->setFactory('Doctrine\\ORM\\Cache\\Logging\\CacheLoggerChain')->setAutowired(FALSE);
        if ($config['logging']) {
            $logger->addSetup('setLogger', ['statistics', new Statement('Doctrine\\ORM\\Cache\\Logging\\StatisticsCacheLogger')]);
        }
        $builder->addDefinition($cacheConfigName = $this->prefix($name . '.ormCacheConfiguration'))->setClass('Doctrine\\ORM\\Cache\\CacheConfiguration')->addSetup('setCacheFactory', [$this->prefix('@' . $name . '.cacheFactory')])->addSetup('setCacheLogger', [$this->prefix('@' . $name . '.cacheLogger')])->setAutowired($isDefault);
        $configuration = $builder->getDefinition($this->prefix($name . '.ormConfiguration'));
        $configuration->addSetup('setSecondLevelCacheEnabled');
        $configuration->addSetup('setSecondLevelCacheConfiguration', ['@' . $cacheConfigName]);
    }