定制 yuanzhihai/think-enum 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

yuanzhihai/think-enum

最新稳定版本:v2.0.0

Composer 安装命令:

composer require yuanzhihai/think-enum

包简介

更方便地在项目中定义并使用枚举

README 文档

README

think-enum 主要用来扩展项目中的枚举使用,通过合理的定义枚举可以使代码更加规范,更易阅读和维护。 php8.1 版本后内置枚举支持,更多信息可以查看:https://www.php.net/manual/zh/language.enumerations.php

概览

  • 扩展原生的 BackedEnum,支持多语言描述
  • 提供更多种实用的方式来实例化枚举、枚举 name、value 取值
  • 提供了便捷的比较方法isisNotin,用于枚举实例之间的对比

安装

PHP版本:php8.1+ 支持 thinkphp 8以上版本:

$ composer require yuanzhihai/think-enum ^2.0

更为具体的使用可以查看测试用例 https://github.com/yuanzhihai/think-enum/tree/main/tests

常规使用

  • 定义
<?php

namespace app\enums;

use yuanzhihai\enum\think\support\traits\EnumEnhance;

enum UserType: int
{
    use EnumEnhance;

    case ADMINISTRATOR = 0;
    case MODERATOR = 1;
    case SUBSCRIBER = 2;
}
  • 使用
// 获取枚举的值
UserType::ADMINISTRATOR->value;// 0

// 获取所有已定义枚举的名称
$names = UserType::names();// ['ADMINISTRATOR', 'MODERATOR', 'SUBSCRIBER']

// 获取所有已定义枚举的值
$values = UserType::values();// [0, 1, 2]
  • 枚举校验
// 检查定义的枚举中是否包含某个「枚举值」
UserType::hasValue(1);// true
UserType::hasValue(-1);// false

// 检查定义的枚举中是否包含某个「枚举名称」 

UserType::hasName('MODERATOR');// true
UserType::hasName('ADMIN');// false
  • 枚举实例化:枚举实例化以后可以方便地通过对象实例访问枚举的 key、value 以及 description 属性的值。

  • toArray
$array = UserType::toArray();
  • toSelectArray
$array = UserType::toSelectArray();// 支持多语言配置

/*
[
    0 => '管理员',
    1 => '监督员',
    2 => '订阅用户',
]
*/

统计信息

  • 总下载量: 69
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 0
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2023-10-13

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固