devionz/enum

Simple enum implementation for PHP prior to 8.1

1.0 2022-07-01 20:34 UTC

This package is auto-updated.

Last update: 2025-05-29 01:59:05 UTC


README

Installation

composer require devionz/enum

Declaration

use Devionz\Enum\Enum;

class Status extends Enum
{
    private const DRAFT = 'draft';
    private const PUBLISHED = 'published';
    private const PENDING = 'pending';
}

Examples

function getValue(Status $status) {
    return $status->value;
}

$enum1 = Status::DRAFT();
$enum2 = Status::from('draft');
$enum3 = Status::tryFrom('draft');

echo $enum1->name; // 'DRAFT'
echo $enum1->value // 'draft'
echo getValue($enum1); // 'draft

var_dump($enum1 === $enum2); // Returns true