freshp / php-enumeration
这个小型包可以表示枚举字段。例如在数据库或API中。
4.0.0
2021-08-11 12:10 UTC
Requires
- php: ^7.4|^8.0
Requires (Dev)
- tm/tooly-composer-script: ^1.4
README
php-enumeration
这个小型包可以表示枚举字段。例如在数据库或API中。
特性列表
- 受MySQL枚举字段或API枚举字段启发,主要用于这些场景
- 它是简单的字符串表示
- 除了类中定义的值外,不允许其他值
- 简单易读
- 不包含枚举不需要处理的功能
- 具有默认回退值,如果const中不存在匹配值则使用该值
- 你可以在
getDefault
方法中抛出异常来强化此对象
- 你可以在
安装
通过composer进行基本安装
composer require freshp/php-enumeration
使用方法
查看tests/fixtures
目录以了解可执行的示例。
使用
- 公共const,它们代表字符串
- 实现
getDefault
方法
创建枚举对象
use FreshP\PhpEnumeration\Enum; class EnumExample extends Enum { public const TEST_CONSTANT = 'constant'; public const TEST_DEFAULT = 'default'; protected function getDefault(): string { return self::TEST_DEFAULT; } }
使用注释以获得更好的IDE支持
use FreshP\PhpEnumeration\Enum; /** * @method static self TEST_CONSTANT() * @method static self TEST_DEFAULT() */ class EnumExample extends Enum ...
如果需要迭代所有选项,请将父类的数据公开为toArray
方法
class EnumExample extends Enum { ... public static function listAllOptions(): array { return self::toArray(); } ...
使用枚举对象
-
通过静态调用创建对象
$enum = EnumExample::TEST_CONSTANT();
-
通过常规初始化创建对象
$enum = new EnumExample(EnumExample::TEST_CONSTANT);
-
创建默认对象(将调用
getDefault
方法的值)$enum = new EnumExample();
-
使用
__toString
方法比较对象$enum->__toString() === EnumExample::TEST_CONSTANT
或
$enum->isEqual(EnumExample::TEST_CONSTANT())
检查
在每个命令中运行项目根目录下的每个命令。
通过composer脚本来运行所有检查
composer quickcheck
执行PHPUnit测试
./vendor/bin/phpunit.phar --testdox
执行修复PHPCS问题
./vendor/bin/phpcbf.phar
执行PHPCS检查
./vendor/bin/phpcs.phar
执行PHPSTAN检查
./vendor/bin/phpstan.phar analyse -l max ./src