/** * {@inheritdoc} */ protected function doFetch(array $ids) { $values = array(); $now = time(); foreach ($ids as $id) { $file = $this->getFile($id); if (!file_exists($file) || !($h = @fopen($file, 'rb'))) { continue; } if ($now >= (int) ($expiresAt = fgets($h))) { fclose($h); if (isset($expiresAt[0])) { @unlink($file); } } else { $i = rawurldecode(rtrim(fgets($h))); $value = stream_get_contents($h); fclose($h); if ($i === $id) { $values[$id] = parent::unserialize($value); } } } return $values; }