Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Enum Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Creating Enums

Define Enum Type

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;
}

Creating Instances

Konekt Enum offers several ways to create enum instances.

Using Plain Constructor

// With plain constructor:
$placed = new Status('placed');
// or
$placed = new Status(Status::PLACED);

Using Factory Method

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');

Using Magic Constructor

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 »

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
jayeshmepani/jpl-moshier-ephemeris-php
elnasnato/laraliveui
labrodev/rest-sdk
sampaui/sampaui
babelqueue/php-sdk
facebook/capi-param-builder-php
babelqueue/symfony
hamzi/corewatch
minionfactory/raw-hydrator
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle