Re: Asymmetric visibility is a BC break
| From: | Jonathan Vollebregt | Date: | Wed, 09 Oct 2024 16:54:58 +0000 |
| Subject: | Re: Asymmetric visibility is a BC break | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-125776@lists.php.net to get a copy of this message | ||
On 10/9/24 5:01 PM, Valentin Udaltsov wrote:
While not explicitly stated in changelogs, this was a BC break, because a changed semantic of smth that existed before is a BC break.Since readonly was only introduced in 8.1 this wasn't a BC break. You couldn't have a readonly property before so no pre-existing code would break.
Did it break anything? Of course it did! See:Again, none of these would break if using 8.0 code. They broke because someone added a PHP 8.1 readonly property to existing code and then tried reflecting/hydrating/serializing it with code that was only tested on 8.0. Now what _could_ be a BC break is when they made a load of internal PHP properties readonly but afaik that only happened on virtual properties that behaved that way already (Think DOMNode stuff) While I agree that
is(Public|Protected|Private)(Get|Set) is a clearer solution, nothing about the current implementation breaks BC.
- Jonathan