dive-be / php-enum-utils
处理原生枚举时总是需要的工具。
1.3.0
2024-03-12 14:00 UTC
Requires
- php: ~8.3
Requires (Dev)
- phpunit/phpunit: ^11.0
README
此库提供了一组原生枚举实用工具(特性),在几乎每个PHP项目中都几乎都需要。
安装
您可以通过composer安装此包
composer require dive-be/php-enum-utils
用法
假设以下 string
支持的枚举
enum Role: string { use \Dive\Enum\Arrayable; use \Dive\Enum\Assertable; use \Dive\Enum\Comparable; use \Dive\Enum\NameListable; use \Dive\Enum\ValueListable; case Administrator = 'admin'; case Auditor = 'audit'; case Moderator = 'mod'; }
Arrayable(仅支持支持枚举)
允许您检索名称和值的键值对
Role::toArray(); // ['Administrator' => 'admin', 'Auditor' => 'audit', 'Moderator' => 'mod']
Assertable
这依赖于枚举名称为PascalCase,遵循Larry Garfield的RFC。
允许您使用谓词函数对枚举实例进行断言
$role = Role::Moderator; $role->isAuditor(); // false $role->isModerator(); // true
Comparable
允许您比较枚举。主要用于提供支持值时
$role = Role::Administrator; $role->equals('admin'); // true $role->equals(Role::Administrator); // true $role->equals('mod'); // false $role->equals(Role::Moderator); // false $role->equalsAny(['admin', 'mod', 'audit']); // true $role->equalsAny([Role::Administrator, Role::Auditor]); // true $role->equalsAny([Role::Moderator, 'audit']); // false
NameListable
允许您检索枚举名称列表
Role::toNames(); // ['Administrator', 'Auditor', 'Moderator']
ValueListable(仅支持支持枚举)
允许您检索枚举值列表
Role::toValues(); // ['admin', 'audit', 'mod']
WithUtilities(仅支持支持枚举)
所有上述实用工具的聚合特性。
测试
composer test
变更日志
请参阅变更日志了解最近更改的更多信息。
贡献
请参阅贡献指南获取详细信息。
安全
如果您发现任何安全问题,请通过oss@dive.be发送电子邮件,而不是使用问题跟踪器。
鸣谢
许可证
MIT许可证(MIT)。请参阅许可证文件获取更多信息。