/** * @dataProvider provideCacheTypes */ public function testFactoryCreate($name, $extension, $expected) { if (null !== $extension && !extension_loaded($extension)) { $this->markTestSkipped(sprintf('Extension %s is not loaded', $extension)); } $factory = new Factory(new ConnectionFactory()); $this->assertInstanceOf($expected, $factory->create($name, [])); }
/** * @param string $label * @param string $name * @param array $options * * @return Cache */ public function factory($label, $name, $options) { if ($this->isAlreadyRegistered($name, $label) && $this->isAlreadyLoaded($label)) { return $this->drivers[$label]; } try { $cache = $this->factory->create($name, $options); } catch (RuntimeException $e) { $this->logger->error($e->getMessage()); $cache = $this->factory->create('array', []); } $cache->setNamespace(md5(gethostname() . '-' . __DIR__)); $this->drivers[$label] = $cache; if (!$this->isAlreadyRegistered($name, $label)) { $this->register($name, $label); $cache->flushAll(); } return $cache; }