地址: https://github.com/lishuncoder/enums

没用过,但是收藏一波

提供两种枚举的应用,一种是对常规枚举类的加强和扩展,即枚举类扩展,继承原枚举类原生功能的基础上拓展了注解属性,出发点源自于一些枚举的值确实一致但意义却不一样的场景:

tb_user.gender:
0 未知
1 男
2 女

tb_user.type:
0 普通
1 特殊类型1
2 特殊类型2

此时值确实一致,但需要的解释和描述却完全不一致,这是通过 const 常量的注解已经无法实现这个功能,或者只能将原 const 值 变为数组,这并不优雅,这时通过对无值枚举类的注解,可以实现值一致,并且附带其余解释和分组与多重分组功能。

另一种是对业务中常见的错误码进行收纳和管理,并且提供前缀功能。让错误码几乎不可能出现重复,并且抛出时变的更加简单。

use Lishun\Enums\Annotations\EnumCase;
use Lishun\Enums\Interfaces\EnumCaseInterface;
use Lishun\Enums\Traits\EnumCaseGet;

/**
 * @method getTest()
 */
enum DemoEnum implements EnumCaseInterface
{
    use EnumCaseGet;

    #[EnumCase(msg: '系统错误', data: 1, group: 'sys', ext: ['test'=>1,'type'=>2])]
    case SYSTEM_ERROR;

    #[EnumCase(msg: '系统错误2', data: 2, group: ['sys', 'sys2'])]
    case SYSTEM_ERROR2;

    #[EnumCase('系统错误3', 2)]
    case SYSTEM_ERROR3;
}

详细直接看github: https://github.com/lishuncoder/enums