> > 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
Hi internals, I've updated https://wiki.php.net/rfc/enum_allow_static_properties to include the arguments made so far against/for including static properties, as well as including more arguments/examples in favor of including static properties in traits. Thanks, - Tyson -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: https://www.php.net/unsub.php