Deprecation: #109519 - BackendUtility item list label methods
See forge#109519
Description
The following methods in
\TYPO3\ have been deprecated:
getLabel From Itemlist () getLabel From Item List Merged () getLabels From Items List ()
Their logic has been moved to the new
\TYPO3\ class, which
provides proper dependency injection support.
Impact
Calling these methods will trigger a PHP
E_
error. The methods will be removed in TYPO3 v15.0.
Affected installations
TYPO3 installations with extensions that call
Backend,
Backend or
Backend.
Migration
Replace calls to
\TYPO3\
with
\TYPO3\.
Before:
use TYPO3\CMS\Backend\Utility\BackendUtility;
$label = BackendUtility::getLabelFromItemlist(
$table, $column, $value, $row
);
After:
use TYPO3\CMS\Core\Schema\SchemaLabelResolver;
$label = $this->schemaLabelResolver->getLabelForFieldValue(
$table, $column, $value, $row
);
Replace calls to
\TYPO3\
with
\TYPO3\.
Before:
use TYPO3\CMS\Backend\Utility\BackendUtility;
$label = BackendUtility::getLabelFromItemListMerged(
$pageId, $table, $column, $value, $row
);
After:
use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Core\Schema\SchemaLabelResolver;
$columnTsConfig = BackendUtility::getPagesTSconfig($pageId)
['TCEFORM.'][$table . '.'][$column . '.'] ?? [];
$label = $this->schemaLabelResolver->getLabelForFieldValue(
$table, $column, $value, $row, $columnTsConfig
);
Replace calls to
Backend
with
\TYPO3\.
Note that the new method returns an array of raw labels instead of a
comma-separated translated string — callers must handle translation
and joining themselves.
Before:
use TYPO3\CMS\Backend\Utility\BackendUtility;
$labels = BackendUtility::getLabelsFromItemsList(
$table, $column, $keyList, $columnTsConfig, $row
);
After:
use TYPO3\CMS\Core\Schema\SchemaLabelResolver;
$labels = $this->schemaLabelResolver->getLabelsForFieldValues(
$table, $column, $keyList, $row, $columnTsConfig
);
$translatedLabels = implode(
', ',
array_map($languageService->sL(...), $labels)
);