Example #1
0
 /**
  * @group DDC-2183
  */
 public function testSetGetSecondLevelCacheConfig()
 {
     $mockClass = $this->getMock('Doctrine\\ORM\\Cache\\CacheConfiguration');
     $this->assertNull($this->configuration->getSecondLevelCacheConfiguration());
     $this->configuration->setSecondLevelCacheConfiguration($mockClass);
     $this->assertEquals($mockClass, $this->configuration->getSecondLevelCacheConfiguration());
 }
Example #2
0
 /**
  * Creates a new EntityManager that operates on the given database connection
  * and uses the given Configuration and EventManager implementations.
  *
  * @param \Doctrine\DBAL\Connection     $conn
  * @param \Doctrine\ORM\Configuration   $config
  * @param \Doctrine\Common\EventManager $eventManager
  */
 protected function __construct(Connection $conn, Configuration $config, EventManager $eventManager)
 {
     $this->conn = $conn;
     $this->config = $config;
     $this->eventManager = $eventManager;
     $metadataFactoryClassName = $config->getClassMetadataFactoryName();
     $this->metadataFactory = new $metadataFactoryClassName();
     $this->metadataFactory->setEntityManager($this);
     $this->metadataFactory->setCacheDriver($this->config->getMetadataCacheImpl());
     $this->repositoryFactory = $config->getRepositoryFactory();
     $this->unitOfWork = new UnitOfWork($this);
     $this->proxyFactory = new ProxyFactory($this, $config->getProxyDir(), $config->getProxyNamespace(), $config->getAutoGenerateProxyClasses());
     if ($config->isSecondLevelCacheEnabled()) {
         $cacheClass = $config->getSecondLevelCacheConfiguration()->getCacheClassName();
         $this->cache = new $cacheClass($this);
     }
 }
 /**
  * @param Configuration $configuration
  */
 protected function setSecondLevelCaching(Configuration $configuration)
 {
     if ($this->config->get('doctrine.cache.second_level', false)) {
         $configuration->setSecondLevelCacheEnabled(true);
         $cacheConfig = $configuration->getSecondLevelCacheConfiguration();
         $cacheConfig->setCacheFactory(new DefaultCacheFactory($cacheConfig->getRegionsConfiguration(), $this->cache->driver()));
     }
 }
 /**
  * Apply configured settings regarding Doctrine's second level cache.
  *
  * @param array $configuredSettings
  * @param Configuration $doctrineConfiguration
  * @return void
  */
 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);
 }