/** * @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); }
/** * @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; }