Enum

PHP 8.1 will have native Enums

PHP 8.1 is introducing native Enum structures and this class may have to be re-implemented or not needed at all.

  • Primitive Type: N/A

Credits

Carbon

This is just a meta-class for php-enum. Documentation: https://github.com/myclabs/php-enum#documentation

Usage

Usage is the same as base class.

Example

<?php

namespace Foo;

use Typing\Type\Enum;

/**
 * Class MyEnum.
 *
 * @method static self PENDING()
 * @method static self RUNNING()
 * @method static self FINISHED()
 */
final class Status extends Enum
{
    private const PENDING = 'pending';
    private const RUNNING = 'running';
    private const FINISHED = 'finished';
}

...

$currentStatus = Status::PENDING();
echo $currentStatus; // 'pending'

Or in Symfony Validator component attributes

    #[Assert\NotBlank(message: 'A status is required.')]
    #[Assert\Choice(callback: [Status::class, 'toArray'])]
    private string $status;