agence-adeliom/easy-common-bundle

为 EasyAdmin 提供基本实体特性和枚举助手的工具包

安装数: 16,518

依赖者: 13

建议者: 0

安全: 0

星标: 4

关注者: 1

分支: 3

开放问题: 2

类型:symfony-bundle


README

Adeliom Quality gate

Easy Common Bundle

为 Easyadmin 提供基本工具。

特性

  • PHP 8 (8.1.0 以下) 的枚举 polyfill
  • 一些实体特质

版本

安装

使用 composer 安装

composer require agence-adeliom/easy-common-bundle

特质

枚举助手

声明

use Adeliom\EasyCommonBundle\Helper\Enum;

/**
 * Action enum
 */
final class Action extends Enum
{
    private const VIEW = 'view';
    private const EDIT = 'edit';
}

使用

$action = Action::VIEW();

// or with a dynamic key:
$action = Action::$key();
// or with a dynamic value:
$action = Action::from($value);
// or
$action = new Action($value);

如你所见,静态方法自动实现以提供对枚举值的快速访问。

与使用类常量相比的一个优点是可以将枚举用作参数类型

function setAction(Action $action) {
    // ...
}

文档

  • __construct() 构造函数检查值是否存在于枚举中
  • __toString() 你可以 echo $myValue,它将显示枚举值(常量的值)
  • getValue() 返回枚举的当前值
  • getKey() 返回枚举当前值上的键
  • equals() 测试枚举实例是否相等(如果枚举值相等则返回 true,否则返回 false

静态方法

  • from() 创建一个 Enum 实例,检查值是否存在于枚举中
  • toArray() 方法返回所有可能的值作为数组(键为常量名称,值为常量值)
  • keys() 返回 Enum 类中所有常量的名称(键)
  • values() 返回 Enum 类中所有 Enum 常量的实例(键为常量名称,值为 Enum 实例)
  • isValid() 检查测试值是否在枚举集中有效
  • isValidKey() 检查测试键是否在枚举集中有效
  • assertValidValue() 断言值在枚举集中有效,否则抛出异常
  • search() 返回搜索值的键
静态方法
final class Action extends Enum
{
    private const VIEW = 'view';
    private const EDIT = 'edit';
}

// Static method:
$action = Action::VIEW();
$action = Action::EDIT();

使用 __callStatic() 实现静态方法辅助器。

如果你关心 IDE 自动完成,你可以自己实现静态方法

final class Action extends Enum
{
    private const VIEW = 'view';

    /**
     * @return Action
     */
    public static function VIEW() {
        return new Action(self::VIEW);
    }
}

或者你可以使用 phpdoc(例如,在 PhpStorm 中支持此功能)

/**
 * @method static Action VIEW()
 * @method static Action EDIT()
 */
final class Action extends Enum
{
    private const VIEW = 'view';
    private const EDIT = 'edit';
}

许可证

MIT

作者