Using enums instead of class constants

I've been enums lately instead of relying on class constants. The myclabs/php-enum package provides a nice implementation. The readme lists the benefits of doing so:

Using an enum instead of class constants provides the following advantages:
  • You can type-hint: `function setAction(Action $action) {`
  • You can enrich the enum with methods (e.g. `format`, `parse`, …)
  • You can extend the enum to add new values (make your enum `final` to prevent it)
  • You can get a list of all the possible values (see below)
This Enum class is not intended to replace class constants, but only to be used when it makes sense.
Check it out: https://github.com/myclabs/php-enum

 

Join 9,500+ smart developers

Get my monthly newsletter with what I learn from running Spatie, building Oh Dear, and maintaining 300+ open source packages. Practical takes on Laravel, PHP, and AI that you can actually use.

No spam. Unsubscribe anytime. You can also follow me on X.

Found something interesting to share? Submit a link to the community section.