tebru/enum

PHP简单枚举库

v0.5.0 2017-02-03 19:41 UTC

This package is auto-updated.

Last update: 2024-09-24 11:42:08 UTC


README

Build Status Code Coverage Scrutinizer Code Quality SensioLabsInsight

枚举

一个简单的PHP库,用于添加对枚举的支持。这比myclabs/php-enum需要更多的工作,但不需要反射。它还强制枚举为单例。

安装

composer require tebru/enum

用法

要使用,扩展AbstractEnum并实现getConstants()方法。

class DirectionEnum extends AbstractEnum
{
    const NORTH = 'north';
    const EAST = 'east';
    const SOUTH = 'south';
    const WEST = 'west';

    /**
     * Return an array of enum class constants
     *
     * @return array
     */
    public static function getConstants()
    {
        return [
            self::NORTH,
            self::EAST,
            self::SOUTH,
            self::WEST,
        ];
    }
}

现在您可以使用静态方法创建一个新的实例。

DirectionEnum::create('north');

您还可以使用__callStatic魔术方法创建一个实例。

DirectionEnum::NORTH();

为枚举添加文档块提示

/**
 * @method static $this NORTH()
 */

参考

每个枚举都提供了多种方法

  • create() [静态] 返回枚举的实例
  • values() [静态] 所有枚举值的0索引数组
  • exists($value) [静态] 如果值存在,则返回true
  • toArray() [静态] 返回一个哈希表,键和值作为枚举值
  • equals($enum) 执行两个枚举值的严格比较
  • getValue() 返回枚举的当前值
  • __toString()getValue()相同