From 690f9b007cd8acd75795b0dfca2a0f19c3d76d84 Mon Sep 17 00:00:00 2001 From: Oleg Ekhlakov Date: Mon, 21 Apr 2025 20:06:59 +0300 Subject: [PATCH 1/3] Fix crash on PHP 8.3 when a file is missing --- framework/caching/FileCache.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/caching/FileCache.php b/framework/caching/FileCache.php index 5eb8a5ab9ab..8c9776e512c 100644 --- a/framework/caching/FileCache.php +++ b/framework/caching/FileCache.php @@ -110,7 +110,7 @@ protected function getValue($key) { $cacheFile = $this->getCacheFile($key); - if (@filemtime($cacheFile) > time()) { + if (file_exists($cacheFile) && @filemtime($cacheFile) > time()) { $fp = @fopen($cacheFile, 'r'); if ($fp !== false) { @flock($fp, LOCK_SH); From 0c2d6b38a4fba9995623bee2707b728ddf6b757d Mon Sep 17 00:00:00 2001 From: Oleg Ekhlakov Date: Wed, 18 Jun 2025 21:12:58 +0300 Subject: [PATCH 2/3] Fix Warning when file is missing --- framework/caching/FileCache.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/framework/caching/FileCache.php b/framework/caching/FileCache.php index 8c9776e512c..9a92821dbbb 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 (file_exists($cacheFile) && @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); From dd9bc775af2b3e1115697d1c980556f0cefc90dd Mon Sep 17 00:00:00 2001 From: Oleg Ekhlakov Date: Wed, 18 Jun 2025 21:27:04 +0300 Subject: [PATCH 3/3] Fix code style - add space --- framework/caching/FileCache.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/framework/caching/FileCache.php b/framework/caching/FileCache.php index 9a92821dbbb..cf6931b1533 100644 --- a/framework/caching/FileCache.php +++ b/framework/caching/FileCache.php @@ -97,7 +97,7 @@ public function exists($key) { $cacheFile = $this->getCacheFile($this->buildKey($key)); - set_error_handler(function($errno, $errstr) { + set_error_handler(function ($errno, $errstr) { return strpos($errstr, 'filemtime') !== false; }, E_WARNING); @@ -117,7 +117,7 @@ protected function getValue($key) { $cacheFile = $this->getCacheFile($key); - set_error_handler(function($errno, $errstr) { + set_error_handler(function ($errno, $errstr) { return strpos($errstr, 'filemtime') !== false; }, E_WARNING);