Breaking: #101175 - Convert VersionState to native backed enum

See forge#101175

Description

The class \TYPO3\CMS\Core\Versioning\VersionState is now converted to a native PHP backed enum.

Impact

Since \TYPO3\CMS\Core\Versioning\VersionState is no longer a class, the existing class constants are no longer available, but are enum instances instead.

In addition it's not possible to instantiate it anymore or call the equals() method.

Affected installations

TYPO3 code using the following code:

Using the following class constants:

  • \TYPO3\CMS\Core\Versioning\VersionState::DEFAULT_STATE

  • \TYPO3\CMS\Core\Versioning\VersionState::NEW_PLACEHOLDER

  • \TYPO3\CMS\Core\Versioning\VersionState::DELETE_PLACEHOLDER

  • \TYPO3\CMS\Core\Versioning\VersionState::MOVE_POINTER

Class instantiation:

  • new \TYPO3\CMS\Core\Versioning\(VersionState::*->value)

where * denotes one of the enum values.

Method invocation:

  • \TYPO3\CMS\Core\Versioning\VersionState::cast()

  • \TYPO3\CMS\Core\Versioning\VersionState::cast()->equals()

Migration

Use the new syntax for getting the values:

  • \TYPO3\CMS\Core\Versioning\VersionState::DEFAULT_STATE->value

  • \TYPO3\CMS\Core\Versioning\VersionState::NEW_PLACEHOLDER->value

  • \TYPO3\CMS\Core\Versioning\VersionState::DELETE_PLACEHOLDER->value

  • \TYPO3\CMS\Core\Versioning\VersionState::MOVE_POINTER->value

Class instantiation should be replaced by:

  • \TYPO3\CMS\Core\Versioning\VersionState::tryFrom($row['t3ver_state'])

Method invocation of cast()/equals() should be replaced by:

  • \TYPO3\CMS\Core\Versioning\VersionState::tryFrom(...)

  • \TYPO3\CMS\Core\Versioning\VersionState::tryFrom(...) === VersionState::MOVE_POINTER