Deprecation: #108810 - BackendUtility localization-related methods
See forge#108810
Description
The following methods in
\TYPO3\ have
been deprecated in favor of new methods in
\TYPO3\:
Backend- useUtility:: get Record Localization () LocalizationinsteadRepository:: get Record Translation () Backend- useUtility:: get Existing Page Translations () LocalizationinsteadRepository:: get Page Translations () Backend- useUtility:: translation Count () LocalizationinsteadRepository:: get Record Translations ()
See Feature: #108799 - LocalizationRepository methods for fetching record translations for details of the new methods.
Impact
Calling any of the deprecated methods triggers a deprecation-level log entry. The methods will be removed in TYPO3 v15.0 and result in a fatal PHP error.
The extension scanner reports usages as a strong match.
Affected installations
Instances or extensions that directly call any of the deprecated methods are affected.
Migration
Inject
Localization
and use the new methods. The new methods return
\TYPO3\ objects instead of plain arrays.
getRecordLocalization()
use TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository;
use TYPO3\CMS\Backend\Utility\BackendUtility;
// Before
$translations = BackendUtility::getRecordLocalization($table, $uid, $languageId);
if (is_array($translations) && !empty($translations)) {
$translation = $translations[0];
}
// After
$translation = $this->localizationRepository->getRecordTranslation($table, $uid, $languageId);
if ($translation !== null) {
// $translation is a RawRecord object
$translatedUid = $translation->getUid();
}
getExistingPageTranslations()
use TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository;
use TYPO3\CMS\Backend\Utility\BackendUtility;
// Before
$pageTranslations = BackendUtility::getExistingPageTranslations($pageUid);
// After
// Returns an array of RawRecord objects indexed by language ID
$pageTranslations = $this->localizationRepository->getPageTranslations($pageUid);
translationCount()
use TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository;
use TYPO3\CMS\Backend\Utility\BackendUtility;
// Before
$message = BackendUtility::translationCount($table, $uid . ':' . $pid, 'Found %s translation(s)');
// or just counting
$count = (int)BackendUtility::translationCount($table, $uid . ':' . $pid);
// After
$translations = $this->localizationRepository->getRecordTranslations($table, $uid);
$count = count($translations);
$message = sprintf('Found %s translation(s)', $count);