.. include:: /Includes.rst.txt .. _breaking-107871-1761597102: =================================================================================== Breaking: #107871 - Remove backend avatar provider registration via :php:`$GLOBALS` =================================================================================== See :issue:`107871` Description =========== Registering backend avatar providers via :php:`$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend']['avatarProviders']` has been replaced by autoconfiguration using the :yaml:`backend.avatar_provider` service tag. This tag is added automatically when the PHP attribute :php:`#[AsAvatarProvider]` is applied. Manual configuration in :file:`Services.yaml` is still possible, particularly if autoconfiguration is disabled. Impact ====== Using the :php:`$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend']['avatarProviders']` array has no effect in TYPO3 v14.0 and later. Affected installations ====================== All installations that use :php:`$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend']['avatarProviders']` to register backend avatar providers are affected. This registration is typically performed in an :file:`ext_localconf.php` file. The extension scanner will report any such usages. Migration ========= Migrate existing registrations to the new autoconfiguration-based approach. **Before:** .. code-block:: php :caption: EXT:my_extension/ext_localconf.php use MyVendor\MyExtension\Backend\Avatar\MyAvatarProvider; $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend'] ['avatarProviders']['my_provider'] = [ 'provider' => MyAvatarProvider::class, 'before' => ['provider-1'], 'after' => ['provider-2'], ]; **After:** .. code-block:: php :caption: EXT:my_extension/Classes/Backend/Avatar/MyAvatarProvider.php use TYPO3\CMS\Backend\Attribute\AsAvatarProvider; use TYPO3\CMS\Backend\Backend\Avatar\AvatarProviderInterface; #[AsAvatarProvider( 'my_provider', before: ['provider-1'], after: ['provider-2'] )] final class MyAvatarProvider implements AvatarProviderInterface { // ... } If you need to support multiple TYPO3 Core versions simultaneously, ensure that both registration methods are implemented: the legacy :php:`$GLOBALS` based registration as well as the new tag-based approach. .. index:: Backend, PHP-API, FullyScanned, ext:backend