adam-lutka/php-enum

PHP 实现枚举类型

v1.0.2 2019-11-30 14:24 UTC

This package is auto-updated.

Last update: 2024-09-29 05:35:47 UTC


README

枚举类型由类表示。特定枚举类型的值由 @method 注释表示,这可以启用代码补全,且不会引起重复。

<?php
require_once('vendor/autoload.php');

/**
 * @method static TypeEnum TYPE_1()
 * @method static $this TYPE_2()
 */
final class TypeEnum extends \AL\PhpEnum\Enum {}


var_dump((string)TypeEnum::TYPE_2());                        // string(6) "TYPE_2"
var_dump(TypeEnum::TYPE_2()->getValue());                    // string(6) "TYPE_2"
var_dump(TypeEnum::TYPE_1()->getOrder());                    // int(0)
var_dump(TypeEnum::TYPE_2()->getOrder());                    // int(1)
var_dump(TypeEnum::TYPE_2() === TypeEnum::TYPE_2());         // bool(true)
var_dump(TypeEnum::TYPE_2() == TypeEnum::TYPE_2());          // bool(true)
var_dump(TypeEnum::TYPE_1() === TypeEnum::TYPE_2());         // bool(false)
var_dump(TypeEnum::TYPE_1() == TypeEnum::TYPE_2());          // bool(false)
var_dump(TypeEnum::parse('TYPE_2') === TypeEnum::TYPE_2());  // bool(true)
var_dump(TypeEnum::tryParse('NOT_EXIST'));                   // NULL
var_dump(TypeEnum::inOrder(0) === TypeEnum::TYPE_1());       // bool(true)
var_dump(TypeEnum::tryInOrder(1000));                        // NULL

入门指南

先决条件

代码需要 PHP 7.1 或更高版本。

安装

composer require adam-lutka/php-enum

运行测试

composer install
vendor/bin/phpunit

版本控制

我们使用 SemVer 进行版本控制。有关可用版本,请参阅 此存储库的标签