Laravel Enum Package for Generating enum-php Classes
Last updated on by Paul Redmond
Laravel Enum by Andrea Marco Sartori is a Laravel package for generating enum classes using enum-php.
As shown in the README, let’s say you wanted to build a Status
enum. You can use the following command to generate the class and keys:
php artisan make:enum Status 'IN_PROGRESS|COMPLETE|FAILED'
Will make the following Enum class:
<?php namespace App\Enums; use Rexlabs\Enum\Enum; /** * The Status enum. * * @method static self IN_PROGRESS() * @method static self COMPLETE() * @method static self FAILED() */class Status extends Enum{ const IN_PROGRESS = 'in_progress'; const COMPLETE = 'complete'; const FAILED = 'failed';}
Further, here’s how you define keys and map them to human-readable names:
php artisan make:enum Status 'IN_PROGRESS=1=In progress|COMPLETE=2=Complete|FAILED=3=Failed'
Which generates the following class:
<?php namespace App\Enums; use Rexlabs\Enum\Enum; /** * The Status enum. * * @method static self IN_PROGRESS() * @method static self COMPLETE() * @method static self FAILED() */class Status extends Enum{ const IN_PROGRESS = 1; const COMPLETE = 2; const FAILED = 3; /** * Retrieve a map of enum keys and values. * * @return array */ public static function map() : array { return [ static::IN_PROGRESS => 'In progress', static::COMPLETE => 'Complete', static::FAILED => 'Failed', ]; }}
You can learn more about this package, get full installation instructions, and view the source code on GitHub at cerbero90/laravel-enum.