From 60bab2badbe05e560ea66836f78ba13bcae556e6 Mon Sep 17 00:00:00 2001 From: El RIDO Date: Sun, 12 Oct 2025 18:19:46 +0200 Subject: [PATCH 1/3] make OPcache optional, resolves #1678 --- doc/Installation.md | 2 +- lib/Data/Filesystem.php | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/doc/Installation.md b/doc/Installation.md index f8f97500..36d3365e 100644 --- a/doc/Installation.md +++ b/doc/Installation.md @@ -30,7 +30,7 @@ for more information. ### Optional Requirements - PHP with GD extension (when using identicon or vizhash icons, jdenticon works - without it) + without it) and OPcache (for better performance) - a database supported by [PHP PDO](https://php.net/manual/book.pdo.php) and the PHP PDO extension (when using database storage) - a Ceph cluster with Rados gateway or AWS S3 storage (when using S3 storage) diff --git a/lib/Data/Filesystem.php b/lib/Data/Filesystem.php index b6837e26..7c921ae1 100644 --- a/lib/Data/Filesystem.php +++ b/lib/Data/Filesystem.php @@ -269,7 +269,9 @@ class Filesystem extends AbstractData { switch ($namespace) { case 'purge_limiter': - opcache_invalidate($this->_path . DIRECTORY_SEPARATOR . 'purge_limiter.php'); + if (function_exists('opcache_invalidate')) { + opcache_invalidate($this->_path . DIRECTORY_SEPARATOR . 'purge_limiter.php'); + } return $this->_storeString( $this->_path . DIRECTORY_SEPARATOR . 'purge_limiter.php', '_last_cache[$key] = $value; - opcache_invalidate($this->_path . DIRECTORY_SEPARATOR . 'traffic_limiter.php'); + if (function_exists('opcache_invalidate')) { + opcache_invalidate($this->_path . DIRECTORY_SEPARATOR . 'traffic_limiter.php'); + } return $this->_storeString( $this->_path . DIRECTORY_SEPARATOR . 'traffic_limiter.php', '_last_cache, true) . ';' From d76796adf38db2ff070ae22e34be5005a5b3d1ca Mon Sep 17 00:00:00 2001 From: El RIDO Date: Sun, 12 Oct 2025 18:39:36 +0200 Subject: [PATCH 2/3] deduplicate logic --- lib/Data/Filesystem.php | 32 +++++++++++++------------------- 1 file changed, 13 insertions(+), 19 deletions(-) diff --git a/lib/Data/Filesystem.php b/lib/Data/Filesystem.php index 7c921ae1..3a9bfb50 100644 --- a/lib/Data/Filesystem.php +++ b/lib/Data/Filesystem.php @@ -267,31 +267,25 @@ class Filesystem extends AbstractData */ public function setValue($value, $namespace, $key = '') { + $file = $this->_path . DIRECTORY_SEPARATOR . $namespace . '.php'; + if (function_exists('opcache_invalidate')) { + opcache_invalidate($file); + } switch ($namespace) { case 'purge_limiter': - if (function_exists('opcache_invalidate')) { - opcache_invalidate($this->_path . DIRECTORY_SEPARATOR . 'purge_limiter.php'); - } - return $this->_storeString( - $this->_path . DIRECTORY_SEPARATOR . 'purge_limiter.php', - '_storeString( - $this->_path . DIRECTORY_SEPARATOR . 'salt.php', - '_last_cache[$key] = $value; - if (function_exists('opcache_invalidate')) { - opcache_invalidate($this->_path . DIRECTORY_SEPARATOR . 'traffic_limiter.php'); - } - return $this->_storeString( - $this->_path . DIRECTORY_SEPARATOR . 'traffic_limiter.php', - '_last_cache, true) . ';' - ); + $content = '_last_cache, true) . ';'; + break; + default: + return false; } - return false; + return $this->_storeString($file, $content); } /** From 0bfa300c5936373087bd4d1fb1d513f96fe2da18 Mon Sep 17 00:00:00 2001 From: El RIDO Date: Sun, 12 Oct 2025 18:40:48 +0200 Subject: [PATCH 3/3] apply StyleCI recommendation --- lib/Data/Filesystem.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Data/Filesystem.php b/lib/Data/Filesystem.php index 3a9bfb50..e4377a9f 100644 --- a/lib/Data/Filesystem.php +++ b/lib/Data/Filesystem.php @@ -280,7 +280,7 @@ class Filesystem extends AbstractData break; case 'traffic_limiter': $this->_last_cache[$key] = $value; - $content = '_last_cache, true) . ';'; + $content = '_last_cache, true) . ';'; break; default: return false;