Ejemplo n.º 1
0
 /**
  * @covers ::delete
  */
 public function testDelete()
 {
     $filename = __DIR__ . '/Fixtures/llama-23.txt';
     $realpath = realpath($filename);
     $cid = 'prefix:test:' . $realpath;
     $this->fileCache->set($filename, 23);
     // Ensure data is removed after deletion.
     $this->fileCache->delete($filename);
     $result = $this->staticFileCache->fetch([$cid]);
     $this->assertEquals([], $result);
     $result = $this->fileCache->get($filename);
     $this->assertNull($result);
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  */
 public function getMultiple(array $filepaths)
 {
     $file_data = [];
     $remaining_cids = [];
     // First load from the static cache what we can.
     foreach ($filepaths as $filepath) {
         if (!file_exists($filepath)) {
             continue;
         }
         $realpath = realpath($filepath);
         // If the file exists but realpath returns nothing, it is using a stream
         // wrapper, those are not supported.
         if (empty($realpath)) {
             continue;
         }
         $cid = $this->prefix . ':' . $this->collection . ':' . $realpath;
         if (isset(static::$cached[$cid]) && static::$cached[$cid]['mtime'] == filemtime($filepath)) {
             $file_data[$filepath] = static::$cached[$cid]['data'];
         } else {
             // Collect a list of cache IDs that we still need to fetch from cache
             // backend.
             $remaining_cids[$cid] = $filepath;
         }
     }
     // If there are any cache IDs left to fetch from the cache backend.
     if ($remaining_cids && $this->cache) {
         $cache_results = $this->cache->fetch(array_keys($remaining_cids)) ?: [];
         foreach ($cache_results as $cid => $cached) {
             $filepath = $remaining_cids[$cid];
             if ($cached['mtime'] == filemtime($filepath)) {
                 $file_data[$cached['filepath']] = $cached['data'];
                 static::$cached[$cid] = $cached;
             }
         }
     }
     return $file_data;
 }