Re: Allow objects in define()

From: Date: Mon, 14 Jun 2021 14:42:40 +0000
Subject: Re: Allow objects in define()
References: 1  Groups: php.internals 
Request: Send a blank email to internals+get-114864@lists.php.net to get a copy of this message
Hey NikiC,

On Mon, Jun 14, 2021, 16:35 Nikita Popov <nikita.ppv@gmail.com> wrote:

> Hi internals,
>
> With the introduction of enums, it's now possible for constants to hold
> objects. However, this works only when using the const X = Y syntax, not
> when using define('X', Y), which still excludes objects.
>
> I've submitted https://github.com/php/php-src/pull/7149 to
> relax the
> restriction. This means that define() would accept everything apart from
> recursive arrays.
>
> An alternative here would be to allow define() to only accept enum objects
> in particular, but not other objects. I would prefer not to do that, as
> such a restriction would be rather arbitrary, now that the technical work
> to support objects has been done. (PS: Please keep the difference between
> mutability and interior mutability in mind.)
>

I rarely encounter any code using define() for anything more than
extremely minimal environment details these days, and even then, it usually
leads to loading an immutable Environment object that is then passed
through dependency injection (container or not) to runtime services.

What are the possible use-cases for this, besides enumeration types?

>


Thread (9 messages)

« previous php.internals (#114864) next »