Collections
Traits for getting collections of enum names, values, and options.
Returns a list of case names in the enum.
use Cline\Enums\Concerns\Names;
enum TaskStatus: int{ use Names;
case Incomplete = 0; case Completed = 1; case Canceled = 2;}
enum Role{ use Names;
case Administrator; case Subscriber; case Guest;}TaskStatus::names(); // ['Incomplete', 'Completed', 'Canceled']Role::names(); // ['Administrator', 'Subscriber', 'Guest']Values
Section titled “Values”Returns a list of case values for backed enums, or case names for pure enums.
use Cline\Enums\Concerns\Values;
enum TaskStatus: int{ use Values;
case Incomplete = 0; case Completed = 1; case Canceled = 2;}
enum Role{ use Values;
case Administrator; case Subscriber; case Guest;}// Backed enum returns valuesTaskStatus::values(); // [0, 1, 2]
// Pure enum returns names (same as ::names())Role::values(); // ['Administrator', 'Subscriber', 'Guest']Options
Section titled “Options”Returns an associative array of case names and values for form selects and validation.
use Cline\Enums\Concerns\Options;
enum TaskStatus: int{ use Options;
case Incomplete = 0; case Completed = 1; case Canceled = 2;}
enum Role{ use Options;
case Administrator; case Subscriber; case Guest;}Basic Usage
Section titled “Basic Usage”// Backed enum returns name => value pairsTaskStatus::options(); // ['Incomplete' => 0, 'Completed' => 1, 'Canceled' => 2]
// Pure enum returns list of namesRole::options(); // ['Administrator', 'Subscriber', 'Guest']String Options
Section titled “String Options”Generate string representations of your enum options with stringOptions():
// Custom format with callback and glueTaskStatus::stringOptions(fn ($name, $value) => "$name => $value", ', ');// Returns: "Incomplete => 0, Completed => 1, Canceled => 2"For pure enums, both $name and $value in the callback are the same.
HTML Options
Section titled “HTML Options”By default, stringOptions() generates HTML <option> tags:
// Backed enum generates option tags with valuesTaskStatus::stringOptions();// <option value="0">Incomplete</option>// <option value="1">Completed</option>// <option value="2">Canceled</option>
// Pure enum uses name as both value and labelRole::stringOptions();// <option value="Administrator">Administrator</option>// <option value="Subscriber">Subscriber</option>// <option value="Guest">Guest</option>The method automatically converts case names to human-readable format (e.g., INCOMPLETE becomes Incomplete).
Use Cases
Section titled “Use Cases”Form Selects
Section titled “Form Selects”<select name="status"> <?php foreach (TaskStatus::options() as $name => $value): ?> <option value="<?= $value ?>"><?= $name ?></option> <?php endforeach; ?></select>Validation Rules
Section titled “Validation Rules”$rules = [ 'status' => ['required', Rule::in(TaskStatus::values())],];API Documentation
Section titled “API Documentation”/** * @param int $status One of: {TaskStatus::stringOptions(fn($n, $v) => $v, ', ')} */public function updateStatus(int $status): void{ // ...}