示例#1
0
 /**
  * @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, []));
 }
示例#2
0
 /**
  * @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;
 }