protected function applySecondLevelCacheSettingsToConfiguration(array $configuredSettings, Configuration $doctrineConfiguration)
{
if (!isset($configuredSettings['enable']) || $configuredSettings['enable'] !== true) {
return;
}
$doctrineConfiguration->setSecondLevelCacheEnabled();
$regionsConfiguration = $doctrineConfiguration->getSecondLevelCacheConfiguration()->getRegionsConfiguration();
if (isset($configuredSettings['defaultLifetime'])) {
$regionsConfiguration->setDefaultLifetime($configuredSettings['defaultLifetime']);
}
if (isset($configuredSettings['defaultLockLifetime'])) {
$regionsConfiguration->setDefaultLockLifetime($configuredSettings['defaultLockLifetime']);
}
if (isset($configuredSettings['regions']) && is_array($configuredSettings['regions'])) {
foreach ($configuredSettings['regions'] as $regionName => $regionLifetime) {
$regionsConfiguration->setLifetime($regionName, $regionLifetime);
}
}
$cache = new CacheAdapter();
// must use ObjectManager in compile phase...
$cache->setCache($this->objectManager->get(CacheManager::class)->getCache('Flow_Persistence_Doctrine_SecondLevel'));
$factory = new \Doctrine\ORM\Cache\DefaultCacheFactory($regionsConfiguration, $cache);
$doctrineConfiguration->getSecondLevelCacheConfiguration()->setCacheFactory($factory);
}