I gave SplEnum a quick read as well. It seems they are solving a
different use case. SplEnum appears to be optimized for the case
where you have some inherently-integer constants floating around your
code (due to legacy or interoperation with C or network protocols or
what-have-you), and you want to give them prettier names while
facilitating safe conversion between the integers and the fancy names.
For example, with SplEnum I can do:
new HttpStatus($status)
and it will throw an exception if $status isn't a valid http status
code, otherwise it will give me HttpStatus::FOUR_OH_FOUR or what have
you.
The proposed MW enumeration class is when you don't want to think of
your enumerated types as integers at all.
--scott