ulrack/enum

此包已被废弃,不再维护。作者建议使用grizz-it/enum包。

Ulrack的枚举对象。

1.0.2 2020-03-05 20:35 UTC

This package is auto-updated.

Last update: 2020-04-08 20:56:05 UTC


README

Build Status

Ulrack Enum

Ulrack Enum是PHP中可枚举对象的实现。它使用两个解释器钩子来允许类型提示和简单地检索值。

安装

要安装此包,请运行以下命令

composer require ulrack/enum

用法

为了创建一个枚举对象,创建一个新的类,该类扩展了Ulrack\Enum\Enum。然后在新建的类中将所有选项作为常量添加。可选地,可以在类定义上方定义可调用的方法。

枚举对象的一个实现可能如下所示

<?php
/**
 * Copyright (C) GrizzIT, Inc. All rights reserved.
 * See LICENSE for license details.
 */

namespace MyProject\MyPackage\Common;

use Ulrack\Enum\Enum;

/**
 * @method static EnumMock FOO()
 * @method static EnumMock BAR()
 */
class MyEnum extends Enum
{
    const FOO = 'foo';
    const BAR = 'bar';
}

可以通过调用MyProject\MyPackage\Common\MyEnum::FOO()来检索所需的枚举值。这将检索一个值为fooMyProject\MyPackage\Common\MyEnum实例。可以通过将对象转换为字符串来检索值foo

以下是一个实际应用中的实现示例

<?php
/**
 * Copyright (C) GrizzIT, Inc. All rights reserved.
 * See LICENSE for license details.
 */

namespace MyProject\MyPackage\Namespace;

use MyProject\MyPackage\Common\MyEnum;

class MyImplementation
{
    /**
     * Constructor
     *
     * @param MyEnum $option
     */
    public function __construct(MyEnum $option)
    {
        $this->option = (string) $option;
    }
}

new MyImplementation(MyEnum::FOO());

MyProject\MyPackage\Common\MyEnum类还继承自Ulrack\Enum\Enum类的一些功能。例如,为了检索所有选项,可以在MyEnum上调用静态方法getOptions。这将返回一个包含选项的关联数组。

还可以通过向不同的函数提供值来检索枚举名称。这可以通过调用MyEnum::getOrdinal('foo')来实现,这将返回FOO

变更日志

有关最近变更的更多信息,请参阅CHANGELOG

贡献

有关详细信息,请参阅CONTRIBUTING行为准则

MIT许可证

版权所有(c)2019 GrizzIT

本许可证授予任何获取本软件及其相关文档副本(“软件”)的个人免费权限,不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向提供软件的个人授予上述权限,但需遵守以下条件

上述版权声明和本许可证声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的质量保证,无论是明示的还是暗示的,包括但不限于适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是由于合同行为、侵权或其他原因引起,无论与软件或软件的使用或其他方式有关。