anik / php-enum-enhancements
PHP 枚举类型的Trait
Requires
- php: ^8.1
Requires (Dev)
- phpunit/phpunit: ^9.5
README
anik/php-enum-enhancements

anik/php-enum-enhancements 提供了一些方法来检索 PHP 枚举的键、值或 kv 对。
文档
安装
要安装此包,请运行
composer require anik/php-enum-enhancements
使用
在您的任何 Enum 中使用 Anik\PhpEnumEnhancements\Enhancement
trait,您将能够访问以下方法。
# [\UnitEnum | \BackedEnum ]::case->getName(/* null or callable */) # \BackedEnum::case->getValue(/* null or callable */) # [\UnitEnum | \BackedEnum ]::names(/* null or callable */) # \BackedEnum::values(/* null or callable */) # \BackedEnum::kvPair( /* nameCallback: null or callable, */ /* valueCallback: null or callable, */ /* valueAsKey: bool */ # )
示例
对于以下枚举
enum PostStatus: string { use \Anik\PhpEnumEnhancements\Enhancement; case DRAFT = 'draft'; case UNDER_REVIEW = 'under_review'; case PUBLISHED = 'published'; }
-
PostStatus::DRAFT->getName()
将返回"DRAFT"
. -
PostStatus::DRAFT->getName('strtolower')
将返回"draft"
. -
PostStatus::DRAFT->getValue()
将返回"draft"
. -
PostStatus::DRAFT->getValue('ucfirst')
将返回"Draft"
. -
PostStatus::names()
将返回[ "DRAFT", "UNDER_REVIEW", "PUBLISHED", ]
. -
PostStatus::names('strtolower')
将返回[ "draft", "under_review", "published", ]
. -
PostStatus::values()
将返回[ "draft", "under_review", "published", ]
. -
PostStatus::values('ucfirst')
将返回[ "Draft", "Under_review", "Published", ]
. -
PostStatus::kvPair()
将返回[ "draft" => "DRAFT", "under_review" => "UNDER_REVIEW", "published" => "PUBLISHED", ]
. -
PostStatus::kvPair(nameCallback: 'strtolower')
将返回[ "draft" => "draft", "under_review" => "under_review", "published" => "published", ]
. -
PostStatus::kvPair(valueCallback: 'ucfirst')
将返回[ "Draft" => "DRAFT", "Under_review" => "UNDER_REVIEW", "Published" => "PUBLISHED", ]
. -
PostStatus::kvPair(valueAsKey: false)
将返回[ "DRAFT" => "draft", "UNDER_REVIEW" => "under_review", "PUBLISHED" => "published", ]
以 ['NAME_OF_ENUM' => 'VALUE_OF_ENUM'] 格式。
有问题吗?
如果您发现任何问题/错误/缺失的功能,请提交问题,如果可能的话,请提交 PR。