Commit 42baffd2bf0 for php.net

commit 42baffd2bf00ab6016df653ef88b8196ddbc3a2e
Author: Nicolas Grekas <nicolas.grekas@gmail.com>
Date:   Mon Feb 23 13:30:41 2026 +0100

    Add note about session behavior change in UPGRADE file (#21271)

diff --git a/UPGRADING b/UPGRADING
index 3df40b98a33..77d8463afe9 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -30,6 +30,14 @@ PHP 8.6 UPGRADE NOTES
     sessions. It only returns false now when the session data could not be
     encoded. This mainly happens with the default serialization handler
     if a key contains the pipe | character.
+  . When session.lazy_write is enabled and a session handler implements
+    SessionUpdateTimestampHandlerInterface, sessions that were read as empty
+    and remain empty at write time will now trigger updateTimestamp() instead
+    of write(). Previously, write() was always called for empty sessions
+    because session_encode() returned false, bypassing the lazy_write
+    comparison. Custom session handlers that rely on write() being called
+    with empty data (e.g. to destroy the session) should implement the same
+    logic in their updateTimestamp() method.

 - Standard:
   . Invalid mode values now throw in array_filter() instead of being silently