1. Go to this page and download the library: Download vixen/laravel-enums library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
vixen / laravel-enums example snippets
use Vixen\Enums\Attributes\Description;
use Vixen\Enums\Attributes\Label;
use Vixen\Enums\Attributes\LongLabel;
use Vixen\Enums\Attributes\ShortLabel;
use Vixen\Enums\HasDescriptions;
use Vixen\Enums\HasLabels;
use Vixen\Enums\HasOptions;
use Vixen\Enums\HasValues;
use Vixen\Enums\Filterable;
use Vixen\Enums\Snakeable;
use Vixen\Enums\ToArray;
use Vixen\Enums\ToValue;
enum Status: string
{
use HasDescriptions;
use HasLabels;
use HasOptions;
use HasValues;
use Filterable;
use Snakeable;
use ToArray;
use ToValue;
#[Label('Pending')]
#[LongLabel('Pending Review')]
#[ShortLabel('PND')]
#[Description('Items waiting to be reviewed by an administrator')]
case Pending = 'pending';
#[Label('Approved')]
#[LongLabel('Approved Review')]
#[ShortLabel('APR')]
#[Description('Items that have passed review')]
case Approved = 'approved';
#[Label('Rejected'), LongLabel('Rejected Review'), ShortLabel('REJ')]
case Rejected = 'rejected';
}
// Static methods — return a Collection keyed by enum value
Status::labels(); // ['pending' => 'Pending', 'approved' => 'Approved', ...]
Status::longLabels(); // ['pending' => 'Pending Review', ...]
Status::shortLabels(); // ['pending' => 'PND', ...]
// Instance methods — return the label for a single case
Status::Pending->label(); // 'Pending'
Status::Pending->longLabel(); // 'Pending Review'
Status::Pending->shortLabel(); // 'PND'
case Pending = 'pending';
// Pending->label() returns 'Pending'
#[Label('Pending')] // default label
#[Label('Pending Review', type: 'long')] // equivalent to #[LongLabel(...)]
#[Label('PND', type: 'short')] // equivalent to #[ShortLabel(...)]
#[Label('enums.status.pending')]
case Pending = 'pending';
// Static method — returns a Collection keyed by enum value
Status::descriptions();
// ['pending' => 'Items waiting to be reviewed by an administrator', 'approved' => 'Items that have passed review', 'rejected' => null]
// Instance method — returns the description for a single case, or null
Status::Pending->description(); // 'Items waiting to be reviewed by an administrator'
Status::Rejected->description(); // null
#[Description('enums.status.pending_description')]
case Pending = 'pending';