Skip to content

Repository files navigation

lfyw-enum

A php8.1 enum helper..

StyleCI build status

Installing

$ composer require lfyw/lfyw-enum -vvv

Usage

创建枚举类

枚举类会创建在 app/Enums 目录下

$ php artisan make:enum UserType

生成文件内容如下,可以在其中继续添加枚举值:

<?phpnamespaceApp\Enums;
useLfyw\LfywEnum\Enumable;
useLfyw\LfywEnum\HasEnum;
enum UserType:stringimplements Enumable
{
use HasEnum;
//以下为添加的示例内容caseADMIN = 'admin';
caseCONSUMER = 'consumer';
}

使用方法

UserType::getValues()

获取所有枚举值,如果不是一个回退枚举回返回一个空数组

UserType::getNames()

获取所有枚举名

UserType::getDescriptions()

获取所有注释。

  • 默认必须是一个回退枚举,否则会抛出一个异常
  • 可以在枚举中覆盖这个方法,以覆盖默认的注释。如果不是一个回退枚举,可以使用覆盖的方式创建注释,使用时不会再抛出异常
<?phpnamespaceApp\Enums;
useLfyw\LfywEnum\Enumable;
useLfyw\LfywEnum\HasEnum;
enum UserType:stringimplements Enumable
{
use HasEnum;
//以下为添加的示例内容caseADMIN = 'admin';
caseCONSUMER = 'consumer';
publicstaticfunctiongetDescriptions():array
{
return [
UserType::Admin->name => 'super admin',
UserType::Consumer->name => 'super consumer'
];
}
}

UserType::getDescriptionByValue($value):string

根据值获取注释

UserType::getDescriptionByName(string $name):string

根据名称获取注释

UserType::USER()

调用UserType::User->value,如果不是回退枚举返回null

UserType::hasValue($value, bool $strict = false)

检查枚举中是否包含某个值。

UserType::ADMIN->getDescription()

获取注释。如果不是回退枚举且没有覆盖默认的getDescriptions()方法会抛出一个异常。

UserType::ADMIN->getName()

获取名称

UserType::ADMIN->getValue()

获取值。必须是一个回退枚举,否则会抛出一个异常。

表单验证

publicfunctionrules()
{
return [
'value' => [newEnumValue(Status::class, false)],
'name' => [newEnumName(Status::class)],
];
}

License

MIT

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages