config->get('doctrine.cache.second_level', []); if (!is_array($second_level_cache_config)) return; if (!isset($second_level_cache_config['enabled'])) return; if (!$second_level_cache_config['enabled']) return; $configuration->setSecondLevelCacheEnabled(true); $cacheConfig = $configuration->getSecondLevelCacheConfiguration(); $regions_config = isset($second_level_cache_config['regions']) ? $second_level_cache_config['regions'] : []; if (is_array($regions_config) && count($regions_config) > 0) { $regions_configuration = new RegionsConfiguration ( isset($second_level_cache_config['region_lifetime']) ? $second_level_cache_config['region_lifetime'] : 3600, isset($second_level_cache_config['region_lock_lifetime']) ? $second_level_cache_config['region_lock_lifetime'] : 60 ); foreach ($regions_config as $region_name => $region_config) { if (isset($region_config['lifetime'])) $regions_configuration->setLifetime($region_name, $region_config['lifetime']); if (isset($region_config['lock_lifetime'])) $regions_configuration->setLockLifetime($region_name, $region_config['lock_lifetime']); } $cacheConfig->setRegionsConfiguration($regions_configuration); } // Cache logger if (isset($second_level_cache_config['log_enabled']) && $second_level_cache_config['log_enabled']){ $logger = new StatisticsCacheLogger(); $cacheConfig->setCacheLogger($logger); } $factory = new DefaultCacheFactory ( $cacheConfig->getRegionsConfiguration(), $this->cache->driver() ); $file_lock_region_directory = isset($second_level_cache_config['file_lock_region_directory']) ? $second_level_cache_config['file_lock_region_directory'] : '/tmp'; $factory->setFileLockRegionDirectory($file_lock_region_directory); $cacheConfig->setCacheFactory ( $factory ); } }