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.