---
title: "Deprecation: #106393 - Various methods in BackendUtility"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:deprecation-106393-1742454612"
source: "Changelog/14.0/Deprecation-106393-VariousMethodsInBackendUtility.rst"
typo3-version: "14.0"
typo3-major: 14
type: "deprecation"
issue: 106393
forge: "https://forge.typo3.org/issues/106393"
tags: ["TCA", "FullyScanned", "ext:core"]
rendered: "2026-09-20T18:31:11+00:00"
---

# Deprecation: #106393 - Various methods in BackendUtility {#deprecation-106393-1742454612}

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

## Description {#description}

Due to the introduction of the Schema API, several methods of
`\TYPO3\CMS\Backend\Utility\BackendUtility` that retrieve
information from `$GLOBALS['TCA']` have been deprecated:

-   `BackendUtility::getCommonSelectFields()`
-   `BackendUtility::getItemLabel()`
-   `BackendUtility::isTableLocalizable()`
-   `BackendUtility::isTableWorkspaceEnabled()`
-   `BackendUtility::isRootLevelRestrictionIgnored()`
-   `BackendUtility::isWebMountRestrictionIgnored()`
-   `BackendUtility::resolveFileReferences()`

## Impact {#impact}

Calling any of the mentioned methods now triggers a deprecation-level log
entry and will stop working in TYPO3 v15.0.

The extension scanner reports usages as a **strong** match.

## Affected installations {#affected-installations}

Instances or extensions that directly call these methods are affected.

## Migration {#migration}

The migration strategy is the same for all cases:
use the corresponding Schema API methods directly in your code.
In most cases, you'll need to inject
`TcaSchemaFactory` via dependency injection.

### getCommonSelectFields {#getcommonselectfields}

No substitution is available. The method was marked as `@internal` already.
If your code depends on this functionality, copy the method into your own
extension.

### getItemLabel {#getitemlabel}

```php
use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\Schema\TcaSchemaCapability;
use TYPO3\CMS\Core\Schema\TcaSchemaFactory;

// Before
return BackendUtility::getItemLabel('pages', 'title');

// After (retrieve an instance of TcaSchemaFactory via dependency
// injection of TYPO3\CMS\Core\Schema\TcaSchemaFactory)
$schema = $this->schemaFactory->has('pages')
    ? $this->schemaFactory->get('pages')
    : null;
return $schema !== null && $schema->hasField('title')
    ? $schema->getField('title')->getLabel()
    : null;
```

### isTableLocalizable {#istablelocalizable}

```php
use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\Schema\TcaSchemaCapability;
use TYPO3\CMS\Core\Schema\TcaSchemaFactory;

// Before
return BackendUtility::isTableLocalizable('pages');

// After (retrieve an instance of TcaSchemaFactory via dependency
// injection of TYPO3\CMS\Core\Schema\TcaSchemaFactory)
return $this->schemaFactory->has('pages')
    && $this->schemaFactory->get('pages')
        ->hasCapability(TcaSchemaCapability::Language);
```

### isTableWorkspaceEnabled {#istableworkspaceenabled}

```php
use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\Schema\TcaSchemaCapability;
use TYPO3\CMS\Core\Schema\TcaSchemaFactory;

// Before
return BackendUtility::isTableWorkspaceEnabled('pages');

// After (retrieve an instance of TcaSchemaFactory via dependency
// injection of TYPO3\CMS\Core\Schema\TcaSchemaFactory)
return $this->schemaFactory->has('pages')
    && $this->schemaFactory->get('pages')
        ->hasCapability(TcaSchemaCapability::Workspace);
```

### isRootLevelRestrictionIgnored {#isrootlevelrestrictionignored}

```php
use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\Schema\TcaSchemaCapability;
use TYPO3\CMS\Core\Schema\TcaSchemaFactory;

// Before
return BackendUtility::isRootLevelRestrictionIgnored('pages');

// After (retrieve an instance of TcaSchemaFactory via dependency
// injection of TYPO3\CMS\Core\Schema\TcaSchemaFactory)
return $this->schemaFactory->has('pages')
    && $this->schemaFactory->get('pages')
        ->getCapability(
            TcaSchemaCapability::RestrictionRootLevel
        )->shallIgnoreRootLevelRestriction();
```

### isWebMountRestrictionIgnored {#iswebmountrestrictionignored}

```php
use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\Schema\TcaSchemaCapability;
use TYPO3\CMS\Core\Schema\TcaSchemaFactory;

// Before
return BackendUtility::isWebMountRestrictionIgnored('pages');

// After (retrieve an instance of TcaSchemaFactory via dependency
// injection of TYPO3\CMS\Core\Schema\TcaSchemaFactory)
return $this->schemaFactory->has('pages')
    && $this->schemaFactory->get('pages')
        ->hasCapability(TcaSchemaCapability::RestrictionWebMount);
```

### resolveFileReferences {#resolvefilereferences}

No substitution is available. Copy the method into your own codebase and adapt
it as needed.
