pon., 17 maj 2021, 16:31 użytkownik Larry Garfield <la...@garfieldtech.com>
napisał:

> On Mon, May 17, 2021, at 9:16 AM, Michał Marcin Brzuchalski wrote:
> > pon., 17 maj 2021, 16:02 użytkownik tyson andre <
> tysonandre...@hotmail.com>
> > napisał:
> >
> > > Hi internals,
> > >
> > > I've created a new RFC
> > > https://wiki.php.net/rfc/enum_allow_static_properties
> > >
> > > Although enums are immutable objects, it is often useful to have
> functions
> > > or methods that operate on enum instances.
> > > In many cases, it would make sense to declare that functionality as
> static
> > > methods on the enum itself.
> > > In cases where static methods require shared state, it would be useful
> to
> > > allow storing those shared state in static properties.
> > > To ensure immutability of enum instances, it's only necessary to forbid
> > > instance properties, but all properties were forbidden in the initial
> > > functionality included with the enums RFC.
> > >
> > > This RFC proposes allowing static properties in enums, while
> continuing to
> > > forbid instance properties.
> > >
> >
> > Would you be able to provide more real life example?
> > The example in RFC could easily encapsulate current Environment reading
> in
> > for eg. EnvironmentConfiguration class with static property and method
> and
> > TBH possibly that would be my preference to solve this.
>
> I would agree.  Static properties are ugly to begin with.  They're globals
> with extra syntax.  I have no desire to see them on enums.
>
> Also a clarification, since it wasn't entirely clear in Tyson's original
> email: Static methods on Enums *are already supported*.  They were included
> in the original Enum RFC.  The change proposed here is just about static
> properties.
>

Personally, I'd prefer to see enums as value objects only, adding static
properties allow to implementation of statically conditional behaviour.
IMO enums should consist only of pure functions. This is why I'd vote NO on
this proposal.

Cheers,
Michał Marcin Brzuchalski

>

Reply via email to