try-again-later/multi-backed-enum

一个小型的PHP库,用于创建由多个值支持的枚举。

v0.1.0 2022-06-27 21:46 UTC

This package is auto-updated.

Last update: 2024-09-12 18:15:21 UTC


README

Tests Latest Version Latest Version

只是一个概念验证,我在用PHP 8属性进行尝试。

一个小型的PHP库,用于创建由多个值支持的枚举。当你有一系列“支持”值(字符串或数字)都标识同一事物时非常有用。

该接口模拟PHP 8.1.0支持的枚举,并添加了allValues()方法,该方法返回所有“支持”值的列表。

安装

通过composer

$ composer require try-again-later/multi-backed-enum

示例

use TryAgainLater\MultiBackedEnum\{MultiBackedEnum, Values, MakeMultiBacked};

#[MultiBackedEnum]
enum Status
{
  #[Values('on', 'true', 'yes')]
  case ON;

  #[Values('off', 'false', 'no', 'null')]
  case OFF;

  use MakeMultiBacked;
}

// Status::ON
$status = Status::tryFrom('true');

// Throws a ValueError
$status = Status::from('some bad value');

// 'off'
$stringStatus = Status::OFF->value();

// ['on', 'true', 'yes']
$stringStatuses = Status::ON->allValues();