PHP 简单的 ENUM 对象

v1.1.2 2017-12-04 17:26 UTC

This package is auto-updated.

Last update: 2024-09-21 00:28:46 UTC


README

License Latest Stable Version Latest Unstable Version Build Status Scrutinizer Code Quality Code Coverage

这是一个简单的库,用于将 ENUM 类型对象添加到任何现有的或新的 PHP 项目中。

需求

  • PHP >= 7.1

安装

composer require simondeeley/enum

用法

使用您自己选择的枚举类型创建一个新的 Enum 类

use simondeeley\enum;

class MyAwesomeEnum extends Enum
{
    const FOO = 'FOO';
    const BAR = 'BAR';
}

现在您可以在代码中使用您新设计的枚举对象。每次您想要使用枚举时,只需简单地实例化一个新的 MyAwesomeEnum。类定义中定义的常量决定了枚举对象可以接受的值。您可以根据设计需求添加尽可能多的常量。

每次创建枚举对象的实例时,都需要传递一个值给它。如果传递给构造函数的值不是预先确定的值之一,则将抛出 InvalidArgumentException 异常。

use Acme\MyAwesomeEnum;

$good = new MyAwesomeEnum('FOO');
$bad = new MyAwesomeEnum('BAZ'); // throws an exception

示例

此软件包提供两个用于即插即用的枚举,分别是 BooleanWeekday。第一个,Boolean 利用枚举来表示 true 或 false,而第二个是周日的列表。

use simondeeley\Enums\Boolean;
use simondeeley\Enums\Weekday;

$true = new Boolean('TRUE');
$true->getValue(); // returns (bool) true

$tuesday = new Weekday('TUESDAY');
$tuesday->getValue(); // returns (string) "Tuesday"

尽管在构建枚举对象时不是强制性的,但 BooleanWeekday 每个都提供快捷的静态方法来快速创建新对象,例如

$true = Boolean::true();

$saturday = Weekday::Saturday();

此功能是任何扩展基本 Enum 类型对象的枚举的内置功能。唯一的限制是,在执行静态方法调用时,最好遵循 PHP 良好的编码实践,并确保所有常量都使用大写。