On Wed, Aug 25, 2021 at 9:51 AM Rowan Tommins <rowan.coll...@gmail.com>
wrote:

> On 25/08/2021 13:45, Nikita Popov wrote:
>
> > We obviously need to keep support for dynamic properties on stdClass,
> > and if we do so, I would expect that to apply to subclasses as well.
>
> Does that actually follow, though? Right now, there is no advantage to
> extending stdClass, so no reason to expect existing code to do so, and
> no reason for people doing so to expect it to affect behaviour.
>
>
> > Second, I consider "extends stdClass" to be something of a last-ditch
> > option. If you encounter a dynamic property deprecation warning, you
> > should generally resolve it in some other way, and only fall back to
> > "extends stdClass" as the final option.
>
>
> That's a reasonable argument in terms of the multiple inheritance case.
>
> My concern about the name remains though: people already do get confused
> by the name "stdClass", because it's not in any way "standard", and
> tells you nothing about what it does.
>
> Reading "class Foo extends stdClass" gives the reader no clues what
> magic behaviour is being inherited; "class Foo extends DynamicObject"
> would be much more clear. Similarly, "$foo = new DynamicObject;
> $foo->bar = 42;" is clearer than "$foo = new stdClass; $foo->bar = 42;"
>
> Regards,
>
> --
> Rowan Tommins
> [IMSoP]
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: https://www.php.net/unsub.php
>
>
Please don't do this. Call it bad coding practices or not, but this was
something I've considered a feature of PHP and have actually built things
around it. It's not something that can be easily refactored since it was
part of the design.

-- 
Chase Peeler
chasepee...@gmail.com

Reply via email to