anik/php-enum-enhancements

v1.0 2022-05-23 05:47 UTC

This package is auto-updated.

Last update: 2024-08-23 10:27:34 UTC


README

anik/php-enum-enhancements codecov PHP Version Require Latest Stable Version

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。