Deprecation: #101475 - Icon::SIZE_* string constants

See forge#101475

Description

The string constants representing icon sizes have been marked as deprecated:

  • \TYPO3\CMS\Core\Imaging\Icon::SIZE_DEFAULT

  • \TYPO3\CMS\Core\Imaging\Icon::SIZE_SMALL

  • \TYPO3\CMS\Core\Imaging\Icon::SIZE_MEDIUM

  • \TYPO3\CMS\Core\Imaging\Icon::SIZE_LARGE

  • \TYPO3\CMS\Core\Imaging\Icon::SIZE_MEGA

The following methods have been adapted to still accept the deprecated string constants and the new \TYPO3\CMS\Core\Imaging\IconSize enum:

  • \TYPO3\CMS\Core\Imaging\Icon->setSize()

  • \TYPO3\CMS\Core\Imaging\IconFactory->getIcon()

  • \TYPO3\CMS\Core\Imaging\IconFactory->getIconForFileExtension()

  • \TYPO3\CMS\Core\Imaging\IconFactory->getIconForRecord()

  • \TYPO3\CMS\Core\Imaging\IconFactory->getIconForResource()

The following method returns the string value of an IconSize enum, but will be removed in TYPO3 v14:

  • \TYPO3\CMS\Core\Imaging\Event\ModifyIconForResourcePropertiesEvent->getSize()

Impact

Passing the size as a string in the above mentioned methods will trigger a deprecation log entry.

Affected installations

All installations with 3rd party extensions using the Icon API are affected.

Migration

Migrate all usages of the aforementioned string constants to the IconSize as follows:

  • \TYPO3\CMS\Core\Imaging\Icon::SIZE_DEFAULT -> \TYPO3\CMS\Core\Imaging\IconSize::DEFAULT

  • \TYPO3\CMS\Core\Imaging\Icon::SIZE_SMALL -> \TYPO3\CMS\Core\Imaging\IconSize::SMALL

  • \TYPO3\CMS\Core\Imaging\Icon::SIZE_MEDIUM -> \TYPO3\CMS\Core\Imaging\IconSize::MEDIUM

  • \TYPO3\CMS\Core\Imaging\Icon::SIZE_LARGE -> \TYPO3\CMS\Core\Imaging\IconSize::LARGE

  • \TYPO3\CMS\Core\Imaging\Icon::SIZE_MEGA -> \TYPO3\CMS\Core\Imaging\IconSize::MEGA

Also migrate from \TYPO3\CMS\Core\Imaging\Event\ModifyIconForResourcePropertiesEvent->getSize() to \TYPO3\CMS\Core\Imaging\Event\ModifyIconForResourcePropertiesEvent->getIconSize().