Laravel Enum Package for Generating enum-php Classes

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.

Filed in: News