oskarstark / enum-helper
此库提供了一些枚举操作的帮助器
1.5.0
2024-09-19 20:02 UTC
Requires
- php: >=8.2
Requires (Dev)
- ergebnis/php-cs-fixer-config: ^5.16
- phpstan/phpstan: ^1.11.8
- phpunit/phpunit: ^9.6.20
This package is auto-updated.
Last update: 2024-09-19 20:03:23 UTC
README
此库提供了一些枚举操作的帮助器
- 比较
- 到数组
它还提供了一个抽象的 EnumTestCase
。
安装
composer require oskarstark/enum-helper
用法
例如,你有以下枚举
<?php declare(strict_types=1); namespace App\Enum; enum Color: string { case RED = 'red'; case BLUE = 'blue'; }
你可以使用以下特质
<?php declare(strict_types=1); namespace App\Enum; +use OskarStark\Enum\Trait\Comparable; +use OskarStark\Enum\Trait\ToArray; enum Color: string { + use Comparable; + use ToArray; case RED = 'red'; case BLUE = 'blue'; }
Comparable
特质
这个 特质
使你可以比较你的 枚举
与另一个或一组枚举,如下所示
App\Enum\Color::RED->equals(App\Enum\Color::BLUE); // returns false
App\Enum\Color::RED->notEquals(App\Enum\Color::RED); // returns false
App\Enum\Color::RED->equalsOneOf([ App\Enum\Color::BLUE, App\Enum\Color::RED, ]); // returns true
例如,你想检查一个颜色是否是好看的颜色
<?php declare(strict_types=1); namespace App\Enum; use OskarStark\Enum\Trait\Comparable; use OskarStark\Enum\Trait\ToArray; enum Color: string { use Comparable; use ToArray; case RED = 'red'; case BLUE = 'blue'; case GREEN = 'green'; public function isNice(): bool { return self::equalsOneOf([ self::BLUE, self::GREEN ]); } }
App\Enum\Color::RED->isNice(); // returns false App\Enum\Color::BLUE->isNice(); // returns true
ToArray
特质
这个 特质
使你可以将枚举作为一个数组来获取,如下所示
对于支持枚举
App\Enum\Color::toArray(); // returns ['RED' => 'red', 'BLUE' => 'blue']
对于非支持枚举
App\Enum\NonBackedEnum::toArray(); // returns ['RED' => 'RED', 'BLUE' => 'BLUE']