---
title: "Breaking: #107871 - Remove backend avatar provider registration via $GLOBALS"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:breaking-107871-1761597102"
source: "Changelog/14.0/Breaking-107871-RemoveBackendAvatarProviderRegistrationViaGLOBALS.rst"
typo3-version: "14.0"
typo3-major: 14
type: "breaking"
issue: 107871
forge: "https://forge.typo3.org/issues/107871"
tags: ["Backend", "PHP-API", "FullyScanned", "ext:backend"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Breaking: #107871 - Remove backend avatar provider registration via `$GLOBALS` {#breaking-107871-1761597102}

See [forge#107871](https://forge.typo3.org/issues/107871)

## Description {#description}

Registering backend avatar providers via
`$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend']['avatarProviders']`
has been replaced by autoconfiguration using the `backend.avatar_provider`
service tag. This tag is added automatically when the PHP attribute
`#[AsAvatarProvider]` is applied. Manual configuration in
`Services.yaml` is still possible, particularly if autoconfiguration is
disabled.

## Impact {#impact}

Using the `$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend']['avatarProviders']`
array has no effect in TYPO3 v14.0 and later.

## Affected installations {#affected-installations}

All installations that use
`$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend']['avatarProviders']`
to register backend avatar providers are affected. This registration is
typically performed in an `ext_localconf.php` file. The extension
scanner will report any such usages.

## Migration {#migration}

Migrate existing registrations to the new autoconfiguration-based approach.

**Before:**

**EXT:my_extension/ext_localconf.php**

```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:**

**EXT:my_extension/Classes/Backend/Avatar/MyAvatarProvider.php**

```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 `$GLOBALS` based
registration as well as the new tag-based approach.
