zul3s / enum-php
此包已废弃且不再维护。未建议替代包。
高级PHP枚举类型
1.2.1
2021-08-08 07:28 UTC
Requires
- php: >=7.1
Requires (Dev)
- jakub-onderka/php-parallel-lint: ^0.9.2
- phpbench/phpbench: @dev
- phpro/grumphp: ^0.11.6
- phpunit/phpunit: 6.*
- sebastian/phpcpd: ^3.0
- sensiolabs/security-checker: ^4.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2023-04-17 06:16:55 UTC
README
仅支持PHP >=7.1。
它是一个抽象类,需要扩展才能使用。
什么是枚举?
在计算机编程中,枚举类型(也称为枚举或enum)是一种数据类型,它由一组称为元素的命名值组成,这些值是类型的元素、成员或枚举器。枚举器名称通常作为语言中的常量标识符。已声明为具有枚举类型的变量可以分配任何枚举器作为值。换句话说,枚举类型具有不同的值,可以进行比较和分配,但在计算机内存中没有任何特定的具体表示;编译器和解释器可以任意表示它们。
一些优点
当您使用枚举而不是类常量时,您可以利用以下优势
- 类型提示:例如,function setEnum(Enum $enum)
- 丰富枚举类的方法:例如,first、format、...
- 获取所有可能的键/值
为什么是这个?
实际上,您可以找到其他提供PHP枚举实现的包,但这个包有一些优势
- 单例:此包使用单例模式
- 快速:实现了小型执行缓存
- 正确的方法:没有循环引用
- 小巧:此包不需要其他包即可使用
- 质量:PSR-2标准
安装
composer require zul3s/enum-php
声明
use Zul3s\EnumPhp\Enum;
/**
* Simpson enum
*
* @method static Simpson::HOMER()
* @method static Simpson::MARGE()
*/
class Simpson extends Enum
{
/**
* @description('Description for Homer const')
*/
const HOMER = 1;
const MARGE = 'marjorie_jacqueline';
}
使用
$marge = Simpson::MARGE();
$homer = Simpson::byKey('HOMER');
$marge = Simpson::byValue('marjorie_jacqueline');
$homer = Simpson::byValue('1', false); // Disable strict type mode
类型提示
function setMember(Simpson $member)
{
// ...
}
文档
获取
$myEnum = MyEnumClass::ENUM_CONST()通过常量名称(方法名称)返回枚举搜索$myEnum = MyEnumClass::byValue(mixed $value, [optional] bool $strict)通过值返回枚举$myEnum = MyEnumClass::byKey(string $constName)通过常量名称返回枚举
使用
$myEnum->getValue() : mixed返回枚举值$myEnum->getKey() : string返回常量名称字符串$myEnum->getDescription() : string如果设置了描述注释则返回,否则抛出异常$myEnum->isEqual(Enum $myEnum) : bool检查枚举是否等于另一个枚举echo $myEnum : string__toString()已实现以返回字符串值
辅助工具
MyEnumClass::getAll() : array返回包含所有MyEnum可能性的数组MyEnumClass::getValues() : array返回一个简单的关联数组,键是常量名,值是常量值MyEnumClass::isValidKey(string $testedValue) : bool检查测试值是否为有效的常量名MyEnumClass::isValidValue($testValue, [可选] bool $strict) : bool检查测试值是否为有效的常量值