diff --git a/framework/caching/FileCache.php b/framework/caching/FileCache.php index 5eb8a5ab9ab..cf6931b1533 100644 --- a/framework/caching/FileCache.php +++ b/framework/caching/FileCache.php @@ -97,7 +97,14 @@ public function exists($key) { $cacheFile = $this->getCacheFile($this->buildKey($key)); - return @filemtime($cacheFile) > time(); + set_error_handler(function ($errno, $errstr) { + return strpos($errstr, 'filemtime') !== false; + }, E_WARNING); + + $filemtime = filemtime($cacheFile); + restore_error_handler(); + + return $filemtime !== false && $filemtime > time(); } /** @@ -110,7 +117,14 @@ protected function getValue($key) { $cacheFile = $this->getCacheFile($key); - if (@filemtime($cacheFile) > time()) { + set_error_handler(function ($errno, $errstr) { + return strpos($errstr, 'filemtime') !== false; + }, E_WARNING); + + $filemtime = filemtime($cacheFile); + restore_error_handler(); + + if ($filemtime !== false && $filemtime > time()) { $fp = @fopen($cacheFile, 'r'); if ($fp !== false) { @flock($fp, LOCK_SH);