A simple and easy-to-use enumeration extension package to help you manage enumerations in your project more conveniently, supporting Laravel and Lumen. 更方便地在项目中定义并使用枚举。
A simple and easy-to-use enumeration extension package to help you manage enumerations in your project more conveniently, supporting Laravel and Lumen.
- 一个简单好用的枚举扩展包,帮助你更方便地管理项目中的枚举,支持 Laravel 和 Lumen。
laravel-enum
主要用来扩展项目中的枚举使用,通过合理的定义枚举可以使代码更加规范,更易阅读和维护。
php8.1 版本后内置枚举支持,更多信息可以查看:https://www.php.net/manual/zh/language.enumerations.php
参与社区讨论:- 教你更优雅地写 API 之「枚举使用」
is
、isNot
和in
,用于枚举实例之间的对比支持 Laravel 10 以上版本:
$ composer require jiannei/laravel-enum -vvv
$ php artisan vendor:publish --provider="Jiannei\Enum\Laravel\Providers\LaravelServiceProvider"
$app->register(\Jiannei\Enum\Laravel\Providers\LumenServiceProvider::class);
更为具体的使用可以查看测试用例:https://github.com/Jiannei/laravel-enum/tree/main/tests
<?php
namespace Jiannei\Enum\Laravel\Tests\Enums;
use Jiannei\Enum\Laravel\Support\Traits\EnumEnhance;
enum UserType: int
{
use EnumEnhance;
case ADMINISTRATOR = 0;
case MODERATOR = 1;
case SUBSCRIBER = 2;
}
// 获取枚举的值
UserTypeEnum::ADMINISTRATOR->value;// 0
// 获取所有已定义枚举的名称
$names = UserTypeEnum::names();// ['ADMINISTRATOR', 'MODERATOR', 'SUBSCRIBER']
// 获取所有已定义枚举的值
$values = UserTypeEnum::values();// [0, 1, 2]
// 检查定义的枚举中是否包含某个「枚举值」
UserTypeEnum::hasValue(1);// true
UserTypeEnum::hasValue(-1);// false
// 检查定义的枚举中是否包含某个「枚举名称」
UserTypeEnum::hasName('MODERATOR');// true
UserTypeEnum::hasName('ADMIN');// false
$array = UserTypeEnum::toArray();
$array = UserTypeEnum::toSelectArray();// 支持多语言配置
/*
[
0 => '管理员',
1 => '监督员',
2 => '订阅用户',
]
*/
MIT