A php8.1 enum helper..
$ composer require lfyw/lfyw-enum -vvv
枚举类会创建在 app/Enums 目录下
$ php artisan make:enum UserType
生成文件内容如下,可以在其中继续添加枚举值:
<?php
namespace App\Enums;
use Lfyw\LfywEnum\Enumable;
use Lfyw\LfywEnum\HasEnum;
enum UserType:string implements Enumable
{
use HasEnum;
//以下为添加的示例内容
case ADMIN = 'admin';
case CONSUMER = 'consumer';
}
获取所有枚举值,如果不是一个回退枚举回返回一个空数组
获取所有枚举名
获取所有注释。
- 默认必须是一个回退枚举,否则会抛出一个异常
- 可以在枚举中覆盖这个方法,以覆盖默认的注释。如果不是一个回退枚举,可以使用覆盖的方式创建注释,使用时不会再抛出异常
<?php
namespace App\Enums;
use Lfyw\LfywEnum\Enumable;
use Lfyw\LfywEnum\HasEnum;
enum UserType:string implements Enumable
{
use HasEnum;
//以下为添加的示例内容
case ADMIN = 'admin';
case CONSUMER = 'consumer';
public static function getDescriptions():array
{
return [
UserType::Admin->name => 'super admin',
UserType::Consumer->name => 'super consumer'
];
}
}
根据值获取注释
根据名称获取注释
调用UserType::User->value
,如果不是回退枚举返回null
检查枚举中是否包含某个值。
获取注释。如果不是回退枚举且没有覆盖默认的getDescriptions()
方法会抛出一个异常。
获取名称
获取值。必须是一个回退枚举,否则会抛出一个异常。
public function rules()
{
return [
'value' => [new EnumValue(Status::class, false)],
'name' => [new EnumName(Status::class)],
];
}
MIT