Re: Alias stdClass to DynamicObject?

From: Date: Mon, 06 Sep 2021 17:36:43 +0000
Subject: Re: Alias stdClass to DynamicObject?
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-115973@lists.php.net to get a copy of this message
Den 2021-09-06 kl. 17:28, skrev Nikita Popov:
Hi internals, In the thread for deprecation of dynamic properties, Rowan suggested that we alias "stdClass" to "DynamicObject" in https://externals.io/message/115800#115802. I wanted to split this discussion off into a separate thread, as this can be decided independently. The rationale for this is that "stdClass" is something of a misnomer: The name makes it sound like this is a common base class, as used in a number of other languages. However, PHP does not have a common base class. The only way in which "stdClass" is "standard" is that it is the return type of casting an array to (object). The actual role of stdClass is to serve as a container for dynamic properties, thus the suggested DynamicObject name. What do people think about adding such an alias? Is this worthwhile? Regards, Nikita
Well, we have legacy code where stdClass is quite prevalent and the code works just fine! In case of deprecation of stdClass I would like to point out that the benefit of replacing "new stdClass" with "new DynamicObject" in our existing code is absolutely zero. However, using DynamicObject in new code has a benefit since the intent is clearer. I think one also should take into account how much is stdClass described in documentation and books. Reason is that deprecation is not just about how it affects code. I'm a bit of a book worm so I'll check up on how the usage of stdClass is described in some PHP books. If deprecation of stdClass is on the table I think it should target the last 8.x or 9.0 zero release. r//Björn L

« previous php.internals (#115973) next »