Latest build status:
Github: https://github.com/softbucket/enum
Packagist: https://packagist.org/packages/softbucket/enum
Feel free to support me :D
The softbucket implementation does not require constants to be defined.
<?php
use Softbucket\Enum\Enum;
/**
* @method static self AM()
* @method static self PM()
*/
class Meridiem extends Enum
{
}
Use PHP's natural comparator. This works by comparing objects references.
Meridiem::one() === Meridiem::one() //true
Meridiem::one() == Meridiem::one() //also true
Parsing a string into an enum is very easy.
$AMString = 'AM';
Meridiem::{$AMString}();
The Enum objects are clean of utility methods. Use EnumHelper to grab am array of Enums.
EnumHelper::allEnums(Meridiem::class);
EnumHelper::serialize($enum);
EnumHelper::unserialize($enumString);
Goodbye
Enum::getName()
Enum::fromName()
Enum::values()
Enum::getConstants()
Using simple array caching.