On 30/12/2020 21:24, Aleksander Machniak wrote:
My argument is that, from an end-user perspective, I don't really see
why Unit and Scalar enums have to have different "API" at this point.
I'm talking about ":string"/":int" in the enum definiton as well as
->value and ->from().
My personal opinion is that for many enums, explicitly not having a
scalar representation is a good thing.
This is basically similar to my opinion of __toString() etc: if you have
*multiple* ways to convert something to/from a scalar, blessing one of
them as "default" is arbitrary and confusing.
For example:
enum BookingStatus {
case PENDING;
case CONFIRMED;
case CANCELLED;
public function getId() {
return match($this) {
self::PENDING => 1,
self::CONFIRMED => 2,
self::CANCELLED => 3,
};
}
public function getCode() {
return match($this) {
self::PENDING => 'PEN',
self::CONFIRMED => 'CON',
self::CANCELLED => 'CAN',
};
}
public function getEnglishDescription() {
return match($this) {
self::PENDING => 'Pending Payment',
self::CONFIRMED => 'Confirmed',
self::CANCELLED => 'Cancelled',
};
}
}
Regards,
--
Rowan Tommins
[IMSoP]
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: https://www.php.net/unsub.php