From 1fbdbfb914ef63c3b59aee72c13e36fc5951d39a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20=C5=A0tancl?= Date: Sun, 20 Feb 2022 21:59:36 +0100 Subject: [PATCH] document names() options() values() --- README.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 75 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 829078b..f92d621 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,13 @@ # Enums -A collection\* of enum helpers for PHP. +A collection of enum helpers for PHP. -\* Currently there's only one helper — [`InvokableCases`](#invokablecases) — but the goal of the package is to provide general purpose enum helpers. +- [`InvokableCases`](#invokablecases) +- [`Names`](#names) +- [`Values`](#values) +- [`Options`](#options) -You can read more about the idea on [Twitter](https://twitter.com/archtechx/status/1495158228757270528). I originally wanted to include that helper in [`archtechx/helpers`](https://github.com/archtechx/helpers), but it makes more sense to make it a separate dependency and use it *inside* the other package. +You can read more about the idea on [Twitter](https://twitter.com/archtechx/status/1495158228757270528). I originally wanted to include the helper in [`archtechx/helpers`](https://github.com/archtechx/helpers), but it makes more sense to make it a separate dependency and use it *inside* the other package. ## Installation @@ -72,6 +75,75 @@ public function updateStatus(TaskStatus $status) } ``` +### Names + +This helper returns a list of case *names* in the enum. + +#### Apply the trait on your enum +```php +use ArchTech\Enums\Names; + +enum TaskStatus: int +{ + use Names; + + case INCOMPLETE = 0; + case COMPLETED = 1; + case CANCELED = 2; +} +``` + +#### Use the `names()` method +```php +TaskStatus::names(); // ['INCOMPLETE', 'COMPLETED', 'CANCELED'] +``` + +### Values + +This helper returns a list of case *values* in the enum. + +#### Apply the trait on your enum +```php +use ArchTech\Enums\Values; + +enum TaskStatus: int +{ + use Values; + + case INCOMPLETE = 0; + case COMPLETED = 1; + case CANCELED = 2; +} +``` + +#### Use the `values()` method +```php +TaskStatus::values(); // [0, 1, 2] +``` + +### Options + +This helper returns an associative array of case names and values. + +#### Apply the trait on your enum +```php +use ArchTech\Enums\Options; + +enum TaskStatus: int +{ + use Options; + + case INCOMPLETE = 0; + case COMPLETED = 1; + case CANCELED = 2; +} +``` + +#### Use the `options()` method +```php +TaskStatus::options(); // ['INCOMPLETE' => 0, 'COMPLETED' => 1, 'CANCELED' => 2] +``` + ## Development Run all checks locally: