konekt/enum
Lightweight PHP enum base class (pre-PHP 8.1) for defining value-safe constants via abstract Enum subclasses. Simple instantiation, validation and utilities, with docs and optional Laravel Eloquent integration via konekt/enum-eloquent.
An enum type is a class that extends the base Enum class and defines a set of constants:
class Status extends \Konekt\Enum\Enum
{
const __DEFAULT = self::PLACED;
const PLACED = 'placed';
const CONFIRMED = 'confirmed';
const PROCESSING = 'processing';
const COMPLETED = 'completed';
}
There's no restriction on what constant values can be, so it can be string, numeric, bool, etc.
class Rank extends Konekt\Enum\Enum
{
const JUNIOR = 1;
const INTERMEDIATE = 10;
const SENIOR = 100;
}
Konekt Enum offers several ways to create enum instances.
// With plain constructor:
$placed = new Status('placed');
// or
$placed = new Status(Status::PLACED);
The create() static factory method can also be used for creating enum objects:
// With factory method:
$confirmed = Status::create(Status::CONFIRMED);
$processing = Status::create('processing');
The most terse variant is the use of the magic constructor, where you use one of the const names as static method call:
$completed = Status::COMPLETED();
Instances are immutable.
Next: Default Values »
How can I help you explore Laravel packages today?