PHP 的枚举助手(Enum Helpers)

Laravel

PHP 8.1 的发布为 PHP 带来了原生的 枚举 能力。 Composer 包 archtechx/enums 建立在原生特性的基础上,旨在让使用枚举更加灵活,让人喜爱。

使用这些库特性, 你可以在任何 PHP 项目中为你的枚举添加以下便利:

  • Invokable case - 通过调用它来获取支持的枚举的值
  • Names - 返回枚举中的案例名称列表
  • Values - 返回枚举中的 case 值列表
  • Options - 返回案例名称和值的关联数组

鉴于上述功能,以下是包的 README 中的一些示例。

首先,InvokableCases 特性的工作原理如下:

// Invokable
use ArchTech\Enums\InvokableCases;

enum TaskStatus: int
{
    use InvokableCases;

    case INCOMPLETE = 0;
    case COMPLETED = 1;
    case CANCELED = 2;
}

TaskStatus::INCOMPLETE(); // 0
TaskStatus::COMPLETED(); // 1
TaskStatus::CANCELED(); // 2

接下来,这里是如何从枚举中获取案例名称:

use ArchTech\Enums\Names;

enum TaskStatus: int
{
    use Names;

    case INCOMPLETE = 0;
    case COMPLETED = 1;
    case CANCELED = 2;
}

TaskStatus::names();
// ['INCOMPLETE', 'COMPLETED', 'CANCELED']

Values 特性可以返回一个可能的枚举值数组:

use ArchTech\Enums\Values;

enum TaskStatus: int
{
    use Values;

    case INCOMPLETE = 0;
    case COMPLETED = 1;
    case CANCELED = 2;
}

TaskStatus::values(); // [0, 1, 2]

最后,Options 特性返回名称和值的关联数组:

use ArchTech\Enums\Options;

enum TaskStatus: int
{
    use Options;

    case INCOMPLETE = 0;
    case COMPLETED = 1;
    case CANCELED = 2;
}

TaskStatus::options();
// ['INCOMPLETE' => 0, 'COMPLETED' => 1, 'CANCELED' => 2]

你可以了解有关此软件包的更多信息、获取完整的安装说明,并在 GitHub 上查看 源代码

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/enum-helpers-fo...

译文地址:https://learnku.com/laravel/t/65561

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

能否读取字段说明,比如中文说明。

3年前 评论
JieAnthony 3年前
W-W 3年前

看了下源码 感觉不太好, 都是遍历匹配返数据

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!