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