enderive/enum

Enum implementation for php below 8.1

Maintainers

Details

github.com/enderive/enum

Source

Issues

Installs: 8

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

pkg:composer/enderive/enum

1.0.1 2024-02-03 10:44 UTC

This package is auto-updated.

Last update: 2025-12-05 23:09:35 UTC


README

Class designed to behave as close to native php enum as possible.

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