vlw/xenum
Composer 安装命令:
composer require vlw/xenum
包简介
PHP eXtended Enums. The missing quality-of-life features from PHP 8+ Enums
README 文档
README
The missing quality-of-life features from PHP 8+ Enums.
This library adds a few useful traits to your PHP Enums that compliment existing builtins.
For example,
use vlw\xEnum;
enum HelloWorld: string {
use xEnum;
case FOO = "BAR";
case BAZ = "QUX";
}
// Like Enum::from() but for Enum names instead of values
HelloWorld::fromName("FOO"); // HelloWorld::FOO
// And of course the non-throwing version similar to Enum::tryFrom()
HelloWorld::tryFromName("MOM"); // null
How to use
Requires PHP 8.0 or newer
Install from composer
composer require vlw/xenumusein your projectuse vlw\xEnum;usewith your Enumsenum HelloWorld { use xEnum; }
Methods
All methods implemented by this library
Method --| Enum::fromName(int|string|null): static Enum::tryFromName(int|string|null): static|null Enum::names(): array Enum::values(): array Enum::entries(): array
Enum::fromName()
Resolve an Enum case from case name or throw ValueError if case not found.
Similar to: Enum::from()
Enum::fromName(int|string|null): static
Example:
enum HelloWorld: string {
use xEnum;
case FOO = "BAR";
case BAZ = "QUX";
}
HelloWorld::fromName("FOO"); // HelloWorld::FOO
HelloWorld::fromName("MOM") // ValueError: 'MOM' is not a valid case for HelloWorld
Enum::tryFromName()
Resolve an Enum case from case name or return null if no match found
Similar to: Enum::tryFrom()
Enum::tryFromName(int|string|null): static|null
Example:
enum HelloWorld: string {
use xEnum;
case FOO = "BAR";
case BAZ = "QUX";
}
HelloWorld::tryFromName("FOO"); // HelloWorld::FOO
HelloWorld::tryFromName("MOM") // null
Enum::names()
Return sequential array of Enum case names
Enum::names(): array
Example:
enum HelloWorld: string {
use xEnum;
case FOO = "BAR";
case BAZ = "QUX";
}
HelloWorld::names(); // ["FOO", "BAZ"]
Enum::values()
Return sequential array of Enum case values
Enum::entries(): array
Example:
enum HelloWorld: string {
use xEnum;
case FOO = "BAR";
case BAZ = "QUX";
}
HelloWorld::values(); // ["BAR", "QUX"]
Enum::entries()
Return an associative array of Enum names and values. This method is similar to JavaScript's Object.entries()
Enum::entries(): array
Example:
enum HelloWorld: string {
use xEnum;
case FOO = "BAR";
case BAZ = "QUX";
}
HelloWorld::entries(); // ["FOO" => "BAR", "BAZ" => "QUX"]
vlw/xenum 适用场景与选型建议
vlw/xenum 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 47 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 12 月 02 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 vlw/xenum 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 vlw/xenum 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 47
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 12
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: GPL-3.0-only
- 更新时间: 2024-12-02