PHP code example of cable8mm / enum-getter

1. Go to this page and download the library: Download cable8mm/enum-getter 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/ */

    

cable8mm / enum-getter example snippets


use Laravel\Nova\Fields\Badge;

/**
 * @see https://nova.laravel.com/docs/v5/resources/fields#badge-field
 */
Badge::make(__('Status'), 'status')
    ->map(Status::array(value: 'info'))
    ->labels(Status::array()),

use Laravel\Nova\Fields\Select;

/**
 * @see https://nova.laravel.com/docs/v5/resources/fields#select-field
 */
Select::make(__('Status'), 'status')
    ->options(Status::array())
    ->displayUsingLabels(),

use Laravel\Nova\Fields\Status;

/**
 * @see https://nova.laravel.com/docs/v5/resources/fields#status-field
 */
Status::make(__('Status'), 'status')
    ->loadingWhen(Status::loadingWhen())
    ->failedWhen(Status::failedWhen())
    ->displayUsing(function ($value) {
        return Status::{$value}->value() ?? '-';
    }),

// In Nova factory file
public function definition(): array
{
    return [
        'size' => fake()->randomElement(Status::keys()),
    ];
}

use Cable8mm\EnumGetter\EnumGetter;

enum Size: string
{
    use EnumGetter;

    case LARGE = 'large';
    case MIDDLE = 'middle';
    case SMALL = 'small';
}

print Size::LARGE->name;         //=> 'LARGE'
print Size::LARGE->key();        //=> 'large'
print Size::LARGE->value;        //=> 'large'
print Size::has('large');        //=> true
print Size::has('larger');       //=> false
print Size::has(value: 'large'); //=> true
print Size::names();             //=> ['LARGE', 'MIDDLE', 'SMALL']
print Size::keys();              //=> ['large', 'middle', 'small']
print Size::values();            //=> ['large', 'middle', 'small']
print Size::array();             //=> ['large'=>'large', 'middle'=>'middle', 'small'=>'small']
print Size::reverse();           //=> ['large'=>'large', 'middle'=>'middle', 'small'=>'small']
print Size::of('LARGE');         //=> Size::LARGE
print Size::from('large');       //=> Size::LARGE

use Cable8mm\EnumGetter\EnumGetter;

enum Size2: string
{
    use EnumGetter;

    case LARGE = 'large';
    case MIDDLE = 'middle';
    case SMALL = 'small';

    public function value(): string
    {
        return match ($this) {
            self::LARGE => __('large'),     // grand
            self::MIDDLE => __('middle'),   // milieu
            self::SMALL => __('small'),     // petit(e)
        };
    }
}

print Size2::LARGE->name;        //=> 'LARGE'
print Size2::LARGE->key();       //=> 'large'
print Size2::LARGE->value;       //=> 'large'
print Size::has('large');        //=> true
print Size::has('larger');       //=> false
print Size::has(value: 'large'); //=> false
print Size::has(value: 'grand'); //=> true
print Size2::LARGE->value();     //=> 'grand'
print Size2::names();            //=> ['LARGE', 'MIDDLE', 'SMALL']
print Size2::keys();             //=> ['large', 'middle', 'small']
print Size2::values();           //=> ['grand', 'milieu', 'petit(e)']
print Size2::array();            //=> ['large'=>'grand', 'middle'=>'milieu', 'small'=>'petit(e)']
print Size2::reverse();          //=> ['grand'=>'large', 'milieu'=>'middle', 'petit(e)'=>'small']
print Size2::of('LARGE');        //=> Size::LARGE
print Size2::from('large');      //=> Size::LARGE