tkaratug/powered-enum

为PHP原生动枚举提供一些酷炫的附加功能。

0.0.1 2022-10-12 20:35 UTC

This package is auto-updated.

Last update: 2024-09-13 00:47:20 UTC


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads

本包提供了一种特质,它包含了一些针对原生PHP枚举的酷炫特性。

需求

  • PHP 8.1 或更高版本。

安装

composer require tkaratug/powered-enum

声明

您只需要在您的原生PHP枚举中使用 PoweredEnum 特质即可。

use Tkaratug\PoweredEnum\PoweredEnum;

enum MyEnum: int
{
    use PoweredEnum;
    
    case ONE    = 1;
    case TWO    = 2;
    case THREE  = 3;
}

跳转到

方法

is(), isNot()

  • 您可以通过将任何名称传递给 is()isNot() 方法来检查枚举案例是否与任何名称相等。
$myEnum = MyEnum::ONE;

$myEnum->is(MyEnum::ONE);      // true
$myEnum->is(MyEnum::TWO);      // false

$myEnum->isNot(MyEnum::ONE);   // false
$myEnum->isNot(MyEnum::TWO);   // true

静态方法

hasName()

  • 您可以通过 hasName() 方法检查枚举是否具有给定名称的案例。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
    case TWO = 2;
}

MyEnum::hasName('ONE');     // true
MyEnum::hasName('THREE');   // false

hasValue()

  • 您可以通过 hasValue() 方法检查枚举是否具有给定值的案例。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
    case TWO = 2;
}

MyEnum::hasValue(1);   // true
MyEnum::hasValue(3);   // false

getNames()

  • 您可以通过使用 getNames() 方法获取枚举案例名称的数组。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
    case TWO = 2;
}

MyEnum::getNames();   // ['ONE', 'TWO']

getValues()

  • 您可以通过使用 getValues() 方法获取枚举案例值的数组。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
    case TWO = 2;
}

MyEnum::getValues();   // [1, 2]

toArray()

  • 您可以通过使用 toArray() 方法获取枚举案例的 value => name 组合数组。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
    case TWO = 2;
}

MyEnum::toArray();   // [1 => 'ONE', 2 => 'TWO']

getNamesExcept()

  • 您可以通过使用 getNamesExcept() 方法获取除了指定的之外的所有枚举案例名称的数组。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
    case TWO = 2;
    case THREE = 3;
}

MyEnum::getNamesExcept([MyEnum::ONE]);   // ['TWO', 'THREE']

getValuesExcept()

  • 您可以通过使用 getValuesExcept() 方法获取除了指定的之外的所有枚举案例值的数组。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
    case TWO = 2;
    case THREE = 3;
}

MyEnum::getValuesExcept([MyEnum::ONE]);   // [2, 3]

toArrayExcept()

  • 您可以通过使用 toArrayExcept() 方法获取除了指定的之外的所有枚举案例的 value => name 组合数组。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
    case TWO = 2;
    case THREE = 3;
}

MyEnum::toArrayExcept([MyEnum::ONE]);   // [2 => 'TWO', 3 => 'THREE]

getRandomName()

  • 您可以通过使用 getRandomName() 方法获取枚举案例的随机名称。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
}

MyEnum::getRandomName();   // ['ONE']

getRandomValue()

  • 您可以通过使用 getRandomValue() 方法获取枚举案例的随机值。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
}

MyEnum::getRandomValue();   // [1]

getRandomCase()

  • 您可以通过使用 getRandomCase() 方法获取枚举的随机案例。
enum MyEnum: int {
    use PoweredEnum;

    case ONE = 1;
}

MyEnum::getRandomCase();   // MyEnum::ONE

测试

composer test

变更日志

请参阅CHANGELOG了解最近的变化信息。

贡献

请参阅CONTRIBUTING了解详细信息。

安全漏洞

如果您发现有关安全性的错误,请通过tkaratug@hotmail.com.tr发送邮件,而不是使用问题跟踪器。

致谢

许可

MIT许可(MIT)。请参阅许可文件了解更多信息。