/**
  * @param Config $config
  *
  * @return CacheProvider
  *
  * @throws InvalidCacheConfigException
  */
 public function create(Config $config)
 {
     $this->config = $config;
     $cacheClassName = sprintf($config->getAdapterNamespace(), $this->config->getAdapterName());
     if (!class_exists($cacheClassName)) {
         throw new InvalidCacheConfig('Cache Adapter Not Supported!');
     }
     /** @var CacheProvider $cacheProvider */
     $cacheProvider = new $cacheClassName();
     if (!$this->isValidConfig($this->config)) {
         throw new InvalidCacheConfig('Options Not Supported Passed');
     }
     return $this->decorateWithConnectable($cacheProvider);
 }
Example #2
0
 /**
  * @param Config $config
  *
  * @return <Some Connection>
  */
 public function getAdapter(Config $config)
 {
     $class = sprintf('\\Pcelta\\Doctrine\\Cache\\Factory\\%s', $config->getAdapterName());
     if (!class_exists($class)) {
         throw new InvalidCacheConfig('');
     }
     $this->factory = new $class();
     return $this->factory->create($config);
 }
 /**
  * @param array $cacheSettings
  *
  * @return CacheProvider
  *
  * @throws InvalidCacheConfig
  */
 public function create(array $cacheSettings)
 {
     $config = new Config($cacheSettings);
     $class = sprintf('\\Pcelta\\Doctrine\\Cache\\Factory\\%sFactory', $config->getAdapterName());
     if (!class_exists($class)) {
         throw new InvalidCacheConfig('Adapter not found');
     }
     /* @var Factory\AbstractFactory $factory */
     $this->factory = new $class();
     return $this->factory->create($config);
 }
 /**
  * @param array $cacheSettings
  *
  * @return CacheProvider
  */
 public function create(array $cacheSettings)
 {
     $config = new Config($cacheSettings);
     $cacheClassName = sprintf($config->getAdapterNamespace(), $config->getAdapterName());
     if (!class_exists($cacheClassName)) {
         throw new InvalidCacheConfigException('Cache Adapter Not Supported!');
     }
     $cacheProvider = new $cacheClassName();
     if ($config->isConnectable() === true) {
         $this->addConnection($cacheProvider, $config);
     }
     return $cacheProvider;
 }