dive-be/php-enum-utils

处理原生枚举时总是需要的工具。

1.3.0 2024-03-12 14:00 UTC

This package is auto-updated.

Last update: 2024-09-22 12:30:05 UTC


README

Latest Version on Packagist

此库提供了一组原生枚举实用工具(特性),在几乎每个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)。请参阅许可证文件获取更多信息。