enderive/enum

低于8.1版本的PHP的枚举实现

1.0.1 2024-02-03 10:44 UTC

This package is auto-updated.

Last update: 2024-09-05 20:15:42 UTC


README

设计为尽可能接近原生PHP枚举的类。

use Enderive\Enum;

/**
 * Pure enum
 * 
 * @method static UserStatus ADMIN() 
 * @method static UserStatus MEMBER()
 * @method static UserStatus GUEST()
*/
class UserStatus extends Enum {}

/**
 * Backed enum
*/
class UserStatus extends Enum
{
    private const ADMIN = 1;
    private const MEMBER = 2;
    private const GUEST = 3;
}

UserStatus::ADMIN();
UserStatus::from(1);
UserStatus::tryFrom(1);
UserStatus::cases();

// Enums are singletons
UserStatus::ADMIN() === UserStatus::ADMIN() // => true

$status = UserStatus::from(1);
$status->name // "ADMIN"
$status->value // 1