Re: [RFC] Prevent instantiation and cloning of __PHP_Incomplete_Class
| From: | Tim Düsterhus | Date: | Sat, 07 Mar 2026 21:37:21 +0000 |
| Subject: | Re: [RFC] Prevent instantiation and cloning of __PHP_Incomplete_Class | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-130267@lists.php.net to get a copy of this message | ||
Hi
On 3/3/26 19:02, Jordi Kroon wrote:
I would like to propose a new RFC titled “Prevent instantiation and cloning of __PHP_Incomplete_Class”. RFC: https://wiki.php.net/rfc/deprecate-incomplete-class-instantiation Implementation PR: https://github.com/php/php-src/pull/21325 This RFC proposes to disallow direct instantiation and cloning of the internal class __PHP_Incomplete_Class.I don't find the motivation particularly compelling. Yes, manually instantiating the class is not particularly useful, but it's also not harmful. Similarly for cloning: If the cloning operation works correctly (i.e. it returning a new object with the same state), then it is just behaving according to expectations. On the contrary, I would like to see fewer behavioral differences between internal classes and userland classes. A class that can only be instantiated by the engine without there being a good engine-related reason is yet another special case that users need to learn about. Best regards Tim Düsterhus PS: Unserialization for unknown classes should just throw an Exception.