tkaratug / powered-enum
为PHP原生动枚举提供一些酷炫的附加功能。
0.0.1
2022-10-12 20:35 UTC
Requires
- php: ^8.1
Requires (Dev)
- phpunit/phpunit: ^9.5
README
本包提供了一种特质,它包含了一些针对原生PHP枚举的酷炫特性。
需求
- PHP
8.1
或更高版本。
安装
composer require tkaratug/powered-enum
声明
您只需要在您的原生PHP枚举中使用 PoweredEnum
特质即可。
use Tkaratug\PoweredEnum\PoweredEnum; enum MyEnum: int { use PoweredEnum; case ONE = 1; case TWO = 2; case THREE = 3; }
跳转到
方法
is(), isNot()
- 您可以通过将任何名称传递给
is()
和isNot()
方法来检查枚举案例是否与任何名称相等。
$myEnum = MyEnum::ONE; $myEnum->is(MyEnum::ONE); // true $myEnum->is(MyEnum::TWO); // false $myEnum->isNot(MyEnum::ONE); // false $myEnum->isNot(MyEnum::TWO); // true
静态方法
hasName()
- 您可以通过
hasName()
方法检查枚举是否具有给定名称的案例。
enum MyEnum: int { use PoweredEnum; case ONE = 1; case TWO = 2; } MyEnum::hasName('ONE'); // true MyEnum::hasName('THREE'); // false
hasValue()
- 您可以通过
hasValue()
方法检查枚举是否具有给定值的案例。
enum MyEnum: int { use PoweredEnum; case ONE = 1; case TWO = 2; } MyEnum::hasValue(1); // true MyEnum::hasValue(3); // false
getNames()
- 您可以通过使用
getNames()
方法获取枚举案例名称的数组。
enum MyEnum: int { use PoweredEnum; case ONE = 1; case TWO = 2; } MyEnum::getNames(); // ['ONE', 'TWO']
getValues()
- 您可以通过使用
getValues()
方法获取枚举案例值的数组。
enum MyEnum: int { use PoweredEnum; case ONE = 1; case TWO = 2; } MyEnum::getValues(); // [1, 2]
toArray()
- 您可以通过使用
toArray()
方法获取枚举案例的value => name
组合数组。
enum MyEnum: int { use PoweredEnum; case ONE = 1; case TWO = 2; } MyEnum::toArray(); // [1 => 'ONE', 2 => 'TWO']
getNamesExcept()
- 您可以通过使用
getNamesExcept()
方法获取除了指定的之外的所有枚举案例名称的数组。
enum MyEnum: int { use PoweredEnum; case ONE = 1; case TWO = 2; case THREE = 3; } MyEnum::getNamesExcept([MyEnum::ONE]); // ['TWO', 'THREE']
getValuesExcept()
- 您可以通过使用
getValuesExcept()
方法获取除了指定的之外的所有枚举案例值的数组。
enum MyEnum: int { use PoweredEnum; case ONE = 1; case TWO = 2; case THREE = 3; } MyEnum::getValuesExcept([MyEnum::ONE]); // [2, 3]
toArrayExcept()
- 您可以通过使用
toArrayExcept()
方法获取除了指定的之外的所有枚举案例的value => name
组合数组。
enum MyEnum: int { use PoweredEnum; case ONE = 1; case TWO = 2; case THREE = 3; } MyEnum::toArrayExcept([MyEnum::ONE]); // [2 => 'TWO', 3 => 'THREE]
getRandomName()
- 您可以通过使用
getRandomName()
方法获取枚举案例的随机名称。
enum MyEnum: int { use PoweredEnum; case ONE = 1; } MyEnum::getRandomName(); // ['ONE']
getRandomValue()
- 您可以通过使用
getRandomValue()
方法获取枚举案例的随机值。
enum MyEnum: int { use PoweredEnum; case ONE = 1; } MyEnum::getRandomValue(); // [1]
getRandomCase()
- 您可以通过使用
getRandomCase()
方法获取枚举的随机案例。
enum MyEnum: int { use PoweredEnum; case ONE = 1; } MyEnum::getRandomCase(); // MyEnum::ONE
测试
composer test
变更日志
请参阅CHANGELOG了解最近的变化信息。
贡献
请参阅CONTRIBUTING了解详细信息。
安全漏洞
如果您发现有关安全性的错误,请通过tkaratug@hotmail.com.tr发送邮件,而不是使用问题跟踪器。
致谢
许可
MIT许可(MIT)。请参阅许可文件了解更多信息。