PHP code example of splitstack / laravel-enum-friendly
1. Go to this page and download the library: Download splitstack/laravel-enum-friendly 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/ */
splitstack / laravel-enum-friendly example snippets
use Splitstack\EnumFriendly\Traits\ExtendedEnum;
enum Status: string
{
use ExtendedEnum;
case ACTIVE = 'active';
case INACTIVE = 'inactive';
}
// Returns Laravel Collection instead of array
Status::collect(); // Collection of ['active', 'inactive']
Status::toSelectOptions(); // Collection of select option arrays
Status::rules(['quired', 'string', 'in:active,inactive']
// Or get a Laravel Rule instance
Status::rule();
// Returns: Illuminate\Validation\Rules\Enum instance
use Splitstack\EnumFriendly\Traits\ExtendedEnum;
enum UserStatus: string
{
use ExtendedEnum;
case ACTIVE = 'active';
case INACTIVE = 'inactive';
case PENDING = 'pending';
case SUSPENDED = 'suspended';
}
enum Priority: int
{
use ExtendedEnum;
case LOW = 1;
case MEDIUM = 2;
case HIGH = 3;
case CRITICAL = 4;
}
enum Color
{
use ExtendedEnum;
case RED;
case GREEN;
case BLUE;
}
// Get enum values as a Collection for fluent operations
UserStatus::collect()
->filter(fn($status) => $status !== 'suspended')
->map(fn($status) => strtoupper($status))
->implode(', ');
// Get only specific cases
$activeCases = UserStatus::only(['ACTIVE', 'PENDING']);
// Exclude specific cases
$nonSuspendedCases = UserStatus::except(['SUSPENDED']);
// Filter by values - returns array of values
$validStatuses = UserStatus::onlyValues(['active', 'pending']);
// Get random values for testing
$randomStatus = UserStatus::random(); // Returns a random value
$randomCase = UserStatus::randomCase(); // Returns a random enum instance