Enumerations

Changed in version 14.0

The abstract class \TYPO3\CMS\Core\Type\Enumeration was deprecated with TYPO3 v13.0 and removed with TYPO3 v14.0. Classes extending Enumeration need to be converted into PHP built-in backed enums.

Migration to backed enums

Class definition:

EXT:my_extension/Classes/Enumeration/State.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Enumeration;

use TYPO3\CMS\Core\Type\Enumeration;

class State extends Enumeration
{
    public const STATE_DEFAULT = 'somestate';
    public const STATE_DISABLED = 'disabled';
}
Copied!

should be converted into:

EXT:my_extension/Classes/Enumeration/State.php
<?php

declare(strict_types=1);

namespace MyVendor\MyExtension\Enumeration;

enum State: string
{
    case STATE_DEFAULT = 'somestate';
    case STATE_DISABLED = 'disabled';
}
Copied!

Existing method calls must be adapted.