From 03b7e839c722a426fac535a3a6486bd454d744ac Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 18 Apr 2026 22:40:15 +0100 Subject: [PATCH] [ci skip] ext/dom: NEWS/UPGRADING notes for asymmetric visibility on readonly properties. --- NEWS | 5 +++++ UPGRADING | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/NEWS b/NEWS index 2000d5b4710e..8c2b185d328f 100644 --- a/NEWS +++ b/NEWS @@ -26,6 +26,11 @@ PHP NEWS - DOM: . Removed LIBXML_XINCLUDE from valid options for XMLDocument, as it was a no-op. (ndossche) + . Readonly DOM properties are now declared with asymmetric visibility + (public private(set)). ReflectionProperty::isWritable() reports them + correctly, and external writes raise "Cannot modify private(set) + property" instead of the previous readonly modification error. + (David Carlier) - Fileinfo: . Fixed bug GH-20679 (finfo_file() doesn't work on remote resources). diff --git a/UPGRADING b/UPGRADING index 10a63f6b03ad..f7874c2d3472 100644 --- a/UPGRADING +++ b/UPGRADING @@ -19,6 +19,16 @@ PHP 8.6 UPGRADE NOTES 1. Backward Incompatible Changes ======================================== +- DOM: + . Properties previously documented as @readonly (e.g. DOMNode::$nodeType, + DOMDocument::$xmlEncoding, DOMEntity::$actualEncoding, ::$encoding, + ::$version) are now declared with asymmetric visibility + (public private(set)). Attempts to write to them from outside the + class now raise "Cannot modify private(set) property ::$ + from global scope" instead of the prior readonly modification error. + ReflectionProperty::isWritable() also reports these properties + accurately. + - GD: . imagesetstyle(), imagefilter() and imagecrop() filter their array arguments types/values and raise a TypeError/ValueError