---
title: "Breaking: #107784 - Remove backend layout data provider registration via $GLOBALS"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:breaking-107784-1760947244"
source: "Changelog/14.0/Breaking-107784-RemoveBackendLayoutDataProviderRegistrationViaGLOBALS.rst"
typo3-version: "14.0"
typo3-major: 14
type: "breaking"
issue: 107784
forge: "https://forge.typo3.org/issues/107784"
tags: ["Backend", "PHP-API", "FullyScanned", "ext:backend"]
rendered: "2026-09-28T19:48:07+00:00"
---

# Breaking: #107784 - Remove backend layout data provider registration via `$GLOBALS` {#breaking-107784-1760947244}

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

## Description {#description}

The possibility to register backend layout data providers via
`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['BackendLayoutDataProvider']`
has been replaced by autoconfiguration using the service tag
`page_layout.data_provider`.

The tag is automatically added when a class implements
`\TYPO3\CMS\Backend\View\BackendLayout\DataProviderInterface`. Manual
configuration via `Services.yaml` remains possible, especially when
autoconfiguration is disabled.

Developers need to adapt existing implementations by adding the new method
`getIdentifier()`, as outlined in
[Feature: #107784 - Autoconfigure backend layout data providers](https://docs.typo3.org/permalink/changelog:feature-107784-1760946896).

Additionally, the possibility to dynamically add backend layout data providers
to the global `DataProviderCollection` via its `add()` method has been
removed. Developers should register their data providers as service definitions
in the container as described above.

## Impact {#impact}

Using the global array
`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['BackendLayoutDataProvider']`
to register backend layout data providers has no effect in TYPO3 v14.0 and
later.

## Affected installations {#affected-installations}

All installations that use
`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['BackendLayoutDataProvider']`
for backend layout data provider registration are affected.

This registration is typically done in an `ext_localconf.php` file.

The extension scanner will report such usages.

## Migration {#migration}

Migrate existing registrations to the new autoconfiguration-based approach.

**Before:**

**EXT:my_extension/ext_localconf.php**

```php
use Vendor\MyExtension\View\BackendLayout\MyLayoutDataProvider;

$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['BackendLayoutDataProvider']['my_provider']
    = MyLayoutDataProvider::class;
```

**After:**

**EXT:my_extension/Classes/View/BackendLayout/MyLayoutDataProvider.php**

```php
use TYPO3\CMS\Backend\View\BackendLayout\DataProviderInterface;

final class MyLayoutDataProvider implements DataProviderInterface
{
    // ...

    public function getIdentifier(): string
    {
        return 'my_provider';
    }
}
```

If you need to support multiple TYPO3 versions, you can implement both
registration methods (via `$GLOBALS` and via autoconfiguration).

Ensure that `getIdentifier()` is implemented, which is backward compatible
with older TYPO3 versions even if unused.
