mirror of
https://codeberg.org/vlw/php-xenum.git
synced 2025-09-13 20:23:41 +02:00
Compare commits
3 commits
Author | SHA1 | Date | |
---|---|---|---|
ba3f43a9e2 | |||
1c997a5574 | |||
8972f06f42 |
3 changed files with 12 additions and 12 deletions
10
README.md
10
README.md
|
@ -7,7 +7,7 @@ This library adds a few useful traits to your PHP Enums that compliment existing
|
||||||
For example,
|
For example,
|
||||||
|
|
||||||
```php
|
```php
|
||||||
use \victorwesterlund\xEnum;
|
use vlw\xEnum;
|
||||||
|
|
||||||
enum HelloWorld: string {
|
enum HelloWorld: string {
|
||||||
use xEnum;
|
use xEnum;
|
||||||
|
@ -28,12 +28,12 @@ Requires PHP 8.0 or newer
|
||||||
|
|
||||||
1. **Install from composer**
|
1. **Install from composer**
|
||||||
```
|
```
|
||||||
composer require victorwesterlund/xenum
|
composer require vlw/xenum
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **`use` in your project**
|
2. **`use` in your project**
|
||||||
```php
|
```php
|
||||||
use \victorwesterlund\xEnum;
|
use vlw\xEnum;
|
||||||
```
|
```
|
||||||
|
|
||||||
3. **`use` with your Enums**
|
3. **`use` with your Enums**
|
||||||
|
@ -76,7 +76,7 @@ enum HelloWorld: string {
|
||||||
case BAZ = "QUX";
|
case BAZ = "QUX";
|
||||||
}
|
}
|
||||||
|
|
||||||
HelloWorld::fromName("BAR"); // HelloWorld::FOO
|
HelloWorld::fromName("FOO"); // HelloWorld::FOO
|
||||||
HelloWorld::fromName("MOM") // ValueError: 'MOM' is not a valid case for HelloWorld
|
HelloWorld::fromName("MOM") // ValueError: 'MOM' is not a valid case for HelloWorld
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -100,7 +100,7 @@ enum HelloWorld: string {
|
||||||
case BAZ = "QUX";
|
case BAZ = "QUX";
|
||||||
}
|
}
|
||||||
|
|
||||||
HelloWorld::tryFromName("BAR"); // HelloWorld::FOO
|
HelloWorld::tryFromName("FOO"); // HelloWorld::FOO
|
||||||
HelloWorld::tryFromName("MOM") // null
|
HelloWorld::tryFromName("MOM") // null
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
{
|
{
|
||||||
"name": "victorwesterlund/xenum",
|
"name": "vlw/xenum",
|
||||||
"description": "PHP eXtended Enums. The missing quality-of-life features from PHP 8+ Enums",
|
"description": "PHP eXtended Enums. The missing quality-of-life features from PHP 8+ Enums",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"license": "GPL-3.0-only",
|
"license": "GPL-3.0-only",
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "Victor Westerlund",
|
"name": "Victor Westerlund",
|
||||||
"email": "victor.vesterlund@gmail.com"
|
"email": "victor@vlw.se"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"minimum-stability": "dev",
|
"minimum-stability": "dev",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"victorwesterlund\\": "src/"
|
"vlw\\": "src/"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"require": {}
|
"require": {}
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
namespace victorwesterlund;
|
namespace vlw;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
PHP eXtended Enums.
|
PHP eXtended Enums.
|
||||||
The missing quality-of-life features from PHP 8+ Enums.
|
The missing quality-of-life features from PHP 8+ Enums.
|
||||||
https://github.com/victorwesterlund/php-xenum
|
https://codeberg.org/vlw/php-xenum
|
||||||
*/
|
*/
|
||||||
trait xEnum {
|
trait xEnum {
|
||||||
// Resolve enum case from enum name or return null
|
// Resolve enum case from enum name or return null
|
||||||
|
@ -23,7 +23,7 @@
|
||||||
// Throw a ValueError if Enum name is not found
|
// Throw a ValueError if Enum name is not found
|
||||||
public static function fromName(?string $name): static {
|
public static function fromName(?string $name): static {
|
||||||
$case = self::tryFromName($name);
|
$case = self::tryFromName($name);
|
||||||
return $case ? $case : throw new ValueError("'{$name}' is not a valid case for enum " . self::class);
|
return $case ? $case : throw new \ValueError("'{$name}' is not a valid case for enum " . self::class);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return array of enum names
|
// Return array of enum names
|
||||||
|
@ -40,4 +40,4 @@
|
||||||
public static function entries(): array {
|
public static function entries(): array {
|
||||||
return array_combine(self::names(), self::values());
|
return array_combine(self::names(), self::values());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue