From 1d34aa9b2e1be15474806a591e44e2cffb84b35f Mon Sep 17 00:00:00 2001 From: qodelicious <162776175+qodelicious@users.noreply.github.com> Date: Sun, 18 Oct 2026 06:23:45 +0000 Subject: [PATCH 1/2] SessionHandlerInterface example: return the number of deleted sessions from gc() Fixes #2268 --- reference/session/sessionhandlerinterface.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/reference/session/sessionhandlerinterface.xml b/reference/session/sessionhandlerinterface.xml index 8fd13def50f1..7bfddb95b0fa 100644 --- a/reference/session/sessionhandlerinterface.xml +++ b/reference/session/sessionhandlerinterface.xml @@ -111,13 +111,15 @@ class MySessionHandler implements SessionHandlerInterface #[\ReturnTypeWillChange] public function gc($maxlifetime) { + $deleted = 0; foreach (glob("$this->savePath/sess_*") as $file) { if (filemtime($file) + $maxlifetime < time() && file_exists($file)) { unlink($file); + $deleted++; } } - return true; + return $deleted; } } From 1900dcdc40b83a2f074d01e9c4108a04d45c27ae Mon Sep 17 00:00:00 2001 From: qodelicious <162776175+qodelicious@users.noreply.github.com> Date: Sun, 18 Oct 2026 09:15:14 +0000 Subject: [PATCH 2/2] Only count sessions that unlink() actually deleted --- reference/session/sessionhandlerinterface.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/reference/session/sessionhandlerinterface.xml b/reference/session/sessionhandlerinterface.xml index 7bfddb95b0fa..f6e9b4943781 100644 --- a/reference/session/sessionhandlerinterface.xml +++ b/reference/session/sessionhandlerinterface.xml @@ -113,8 +113,7 @@ class MySessionHandler implements SessionHandlerInterface { $deleted = 0; foreach (glob("$this->savePath/sess_*") as $file) { - if (filemtime($file) + $maxlifetime < time() && file_exists($file)) { - unlink($file); + if (filemtime($file) + $maxlifetime < time() && file_exists($file) && unlink($file)) { $deleted++; } }