froler314 / enum
Enum lib
Installs: 22 207
Dependents: 0
Suggesters: 0
Security: 0
Stars: 2
Watchers: 1
Forks: 1
Open Issues: 0
Requires
- php: >=7.4
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.9
- phpunit/phpunit: ^8.5
This package is not auto-updated.
Last update: 2025-06-19 17:38:28 UTC
README
Library for enumerate objects
Simple use
Create enum class with constants:
class MyEnum extends Enum { const CONSTANT_A = 'value_a'; const CONSTANT_B = 'value_b'; }
Use it as object or as scalar:
$enumObject = MyEnum::getInstance(MyEnum::CONSTANT_A); echo $enumObject->getValue(); // prints 'value_a' echo $enumObject; // also prints 'value_a'
Validate enum by passing whole object instead of scalar:
function someFunction(MyEnum $enumObject): void { // ... } $enumObject = MyEnum::getInstance(MyEnum::CONSTANT_A); someFunction($enumObject);
Compare instances:
function compareFunction(MyEnum $firstEnumObject, MyEnum $secondEnumObject): bool { return $firstEnumObject === $secondEnumObject // both variants || $firstEnumObject->equals($secondEnumObject) // are identical }
Get enum instances via magic static call
/** * @method static self valueA() * @method static self valueB() */ class MyEnum extends Enum { use MagicStaticCallEnum; // use MagicStaticCallEnum trait const CONSTANT_A = 'value_a'; const CONSTANT_B = 'value_b'; } $enumObject = MyEnum::valueA(); // instead of MyEnum::getInstance(MyEnum::CONSTANT_A)