Re: [RFC] Enumerations
| From: | Michał Marcin Brzuchalski | Date: | Mon, 07 Dec 2020 08:46:01 +0000 |
| Subject: | Re: [RFC] Enumerations | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-112450@lists.php.net to get a copy of this message | ||
Hi Larry,
sob., 5 gru 2020 o 00:25 Larry Garfield <larry@garfieldtech.com> napisał(a):
> Greetings, denizens of Internals!
>
> Ilija Tovilo and I have been working for the last few months on adding
> support for enumerations and algebraic data types to PHP. This is a
> not-small task, so we've broken it up into several stages. The first
> stage, unit enumerations, are just about ready for public review and
> discussion.
>
> The overarching plan (for context, NOT the thing to comment on right now)
> is here: https://wiki.php.net/rfc/adts
>
> The first step, for unit enumerations, is here:
>
> https://wiki.php.net/rfc/enumerations
>
> There's still a few bits we're sorting out and the implementation is
> mostly done, but not 100% complete. Still, it's far enough along to start
> a discussion on and get broader feedback on the outstanding nits.
>
> I should note that while the design has been collaborative, credit for the
> implementation goes entirely to Ilija. Blame for any typos in the RFC
> itself go entirely to me.
>
> *dons flame-retardant suit*
>
Thanks for taking the topic. I love it.
Regarding the
::cases() method on UnitEnum I guess it'd be more natural
to cast enum into an array like:
(array) Suit;
but I realize it'd be harder to implement. The question is if it was even
considered?
Regarding the ::from() method responsible for casting was a natural cast
operator considered instead?
For eg.
$suit = (Suit) $record['suit'];
Instead of:
$suit = Suit::from($record['suit']);
Cheers,
Michał Marcin Brzuchalski