carlin/laravel-dict
Composer 安装命令:
composer require carlin/laravel-dict
包简介
README 文档
README
Scan the specified path to obtain enumeration information through reflection
安装:
composer require carlin/laravel-dict
发布配置文件:
php artisan vendor:publish --provider "Carlin\LaravelDict\DictServiceProvider"
配置文件:
<?php return [ 'store'=>env('DICT_ENUM_STORE', env('CACHE_DRIVER', 'file')), //缓存驱动 'cache-key'=>env('DICT_ENUM_CACHE_KEY', 'dict-cache-key'), //缓存key 'cache-ttl'=> (int)env('DICT_ENUM_CACHE_TTL', 60 * 60 * 24 * 30), //缓存时间, 默认30天 'enum-scan-paths'=>[ //base_path('app/Enums/*.php'), //扫描路径 ], ];
例子:
<?php namespace App\Enums; use Carlin\LaravelDict\Dict; use BenSampo\Enum\Enum; class BaseEnum extends Enum { public static function getDescription(mixed $value): string { return Dict::getDescription(static::class, $value) ?? parent::getDescription($value); } public static function descriptions(): array { return Dict::getEnums(static::class); } }
<?php namespace App\Enums; use Carlin\LaravelDict\Attributes\EnumClass; use Carlin\LaravelDict\Attributes\EnumProperty; #[EnumClass( __CLASS__, //枚举类名 '布尔整型枚举', //枚举描述 'webApi', //枚举分组 [ 'test'=>1 //业务拓展字段(选填) ] )] //枚举类注解 class BoolIntEnums extends BaseEnum { //#[EnumProperty('是', ['test'=>2])] //业务拓展字段(选填) #[EnumProperty('是', ['test'=>2])] public const TRUE = 1; //#[EnumProperty('否', ['test'=>1])] #[EnumProperty('否')] public const FALSE = 0; }
<?php use Carlin\LaravelDict\Dict; //清除缓存 Dict::clearDictCache(); //获取枚举信息 Dict::getEnums(BoolIntEnums::class); //获取枚举信息 //getDescription Dict::getDescription(BoolIntEnums::class, 1); //获取枚举描述 //获取枚举字典列表 Dict::getDict(); //获取指定group字典 Dict::getByGroup('webApi');
Dict::getDict输出示例:
//获取枚举字典列表
Array
(
[App\Enums\BoolIntEnum] => Array
(
[name] => bool
[description] => 布尔值字典
[group] => webapi
[test] => 1 //业务拓展字段(选填)
...//其他业务拓展字段
[data] => Array
(
[0] => Array
(
[name] => 是
[code] => 1
[test] => 2 //业务拓展字段(选填)
...//其他业务拓展字段
)
[1] => Array
(
[name] => 否
[code] => 0
[test] => 1 //业务拓展字段(选填)
...//其他业务拓展字段
)
)
[class] => App\Enums\BoolIntEnum
)
)
carlin/laravel-dict 适用场景与选型建议
carlin/laravel-dict 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10 次下载、GitHub Stars 达 2, 最近一次更新时间为 2024 年 05 月 21 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 carlin/laravel-dict 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 carlin/laravel-dict 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 10
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 17
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: Unknown
- 更新时间: 2024-05-21