Deprecation: #108810 - BackendUtility localization-related methods
See forge#108810
Description
The following methods in
\TYPO3\ have
been deprecated in favor of the new methods in
Localization:
get- useRecord Localization () LocalizationinsteadRepository:: get Record Translation () get- useExisting Page Translations () LocalizationinsteadRepository:: get Page Translations () translation- useCount () LocalizationinsteadRepository:: get Record Translations ()
See Feature: #108799 - LocalizationRepository methods for fetching record translations for details on the new methods.
Impact
Calling any of the deprecated methods will trigger 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
Raw objects instead of plain arrays.
getRecordLocalization()
// 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();
}
Copied!
getExistingPageTranslations()
// Before
$pageTranslations = BackendUtility::getExistingPageTranslations($pageUid);
// After
// Returns an array of RawRecord objects indexed by language ID
$pageTranslations = $this->localizationRepository->getPageTranslations($pageUid);
Copied!
translationCount()
// 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);
Copied!