freshp/php-enumeration

这个小型包可以表示枚举字段。例如在数据库或API中。

4.0.0 2021-08-11 12:10 UTC

This package is auto-updated.

Last update: 2024-09-25 15:46:53 UTC


README

Build Status Software License Latest Stable Version Total Downloads

php-enumeration

这个小型包可以表示枚举字段。例如在数据库或API中。

特性列表

  • 受MySQL枚举字段或API枚举字段启发,主要用于这些场景
  • 它是简单的字符串表示
  • 除了类中定义的值外,不允许其他值
  • 简单易读
  • 不包含枚举不需要处理的功能
  • 具有默认回退值,如果const中不存在匹配值则使用该值
    • 你可以在getDefault方法中抛出异常来强化此对象

安装

通过composer进行基本安装

composer require freshp/php-enumeration

使用方法

查看tests/fixtures目录以了解可执行的示例。

使用

  1. 公共const,它们代表字符串
  2. 实现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();
    }
...

使用枚举对象

  1. 通过静态调用创建对象

    $enum = EnumExample::TEST_CONSTANT();
  2. 通过常规初始化创建对象

    $enum = new EnumExample(EnumExample::TEST_CONSTANT);
  3. 创建默认对象(将调用getDefault方法的值)

    $enum = new EnumExample();
  4. 使用__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