henzeb / enumhancer
您用于 PHP 8.1+ 原生枚举的框架无关瑞士军刀
Requires
- php: ^8.1
Requires (Dev)
- composer/composer: ^2.5
- henzeb/enumhancer-ide-helper: main-dev
- infection/infection: ^0.27.0
- mockery/mockery: ^1.5
- nunomaduro/larastan: ^2.3
- orchestra/testbench: ^v7.18|^8.0|^9
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^9.5.27|^10
- dev-main
- v2.3.0
- v2.2.0
- v2.1.0
- v2.0.0
- v1.23.0
- v1.22.0
- v1.21.1
- v1.21.0
- v1.20.1
- v1.20.0
- v1.19.0
- v1.18.0
- v1.17.0
- v1.16.0
- v1.15.0
- v1.14.0
- v1.12.1
- v1.12.0
- v1.11.1
- v1.11.0
- v1.10.1
- v1.10.0
- v1.9.4
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.1
- v1.8.0
- v1.7.0
- v1.6.3
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.2
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.0
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
This package is auto-updated.
Last update: 2024-09-10 09:17:18 UTC
README
此包是您在 PHP 8.1 的原生枚举方面的框架无关瑞士军刀。在这个包中,您将找到许多用于最常见用例的工具,未来还将添加更多。
如果您有任何想法,或者您缺少需要添加的内容,请告诉我。
Enumhancer 不区分大小写,这意味着 Enum
等于 ENUM
等于 enum
。这是基于这样的想法:拥有两个名称相同但大小写不同的不同枚举是没有意义的。
它也不区分类型。这样,您可以尽可能避免与支持枚举带来的额外工作。
注意:尽管 Spatie 的 PHP Enum 中存在的大部分功能都已向后兼容,允许轻松迁移到 PHP 原生枚举,但目前这并不适用于他们的 laravel 包、PHPUnit 断言或 Faker 提供程序。
安装
您可以通过 composer 安装此包
composer require henzeb/enumhancer
用法
您只需将 Enhancers
特性添加到您的 enum
中,就可以使用此包的大部分功能。所有功能都应与 基本
枚举以及 支持
枚举一起工作,除非另有说明。
use Henzeb\Enumhancer\Concerns\Enhancers; enum YourEnum { use Enhancers; // ... }
您还可以仅使用特定功能的特定特性。
注意:所有特性都可以一起使用,但除了 Mappers
之外,它已经实现了 Getters
、Extractor
和 Reporters
的方法。
功能
辅助函数
开发
Laravel 特定功能
Laravel 的自动发现
当您将此包安装到 Laravel 项目中时,Enumhancer 会自动设置宏的 验证规则
,并为 getOrReport
方法设置全局 报告者
,以便它使用 Laravel 的 Log
门面。
如果您不希望这样做,可以告诉 Laravel 不要发现此包。
"extra": {
"laravel": {
"dont-discover": [
"henzeb/enumhancer"
]
}
}
测试
composer test
PHPStan 集成
如果您正在使用 PHPStan 进行静态分析,您可以使用此扩展。
将以下内容添加到您的项目 phpstan.neon
includes:
- vendor/henzeb/enumhancer/extension.neon
更改日志
请参阅 CHANGELOG 以获取有关最近更改的更多信息。
贡献
请参阅 CONTRIBUTING 以获取详细信息。
安全
如果您发现任何安全问题,请通过电子邮件 henzeberkheij@gmail.com 而不是使用问题跟踪器。
鸣谢
许可
GNU AGPLv。请参阅 许可文件 以获取更多信息。