104 lines
3.3 KiB
ReStructuredText
104 lines
3.3 KiB
ReStructuredText
.. include:: /Includes.rst.txt
|
|
|
|
.. _deprecation-108810-1738253894:
|
|
|
|
==================================================================
|
|
Deprecation: #108810 - BackendUtility localization-related methods
|
|
==================================================================
|
|
|
|
See :issue:`108810`
|
|
|
|
Description
|
|
===========
|
|
|
|
The following methods in :php:`\TYPO3\CMS\Backend\Utility\BackendUtility` have
|
|
been deprecated in favor of new methods in
|
|
:php:`\TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository`:
|
|
|
|
* :php:`BackendUtility::getRecordLocalization()` - use
|
|
:php:`LocalizationRepository::getRecordTranslation()` instead
|
|
* :php:`BackendUtility::getExistingPageTranslations()` - use
|
|
:php:`LocalizationRepository::getPageTranslations()` instead
|
|
* :php:`BackendUtility::translationCount()` - use
|
|
:php:`LocalizationRepository::getRecordTranslations()` instead
|
|
|
|
See :ref:`feature-108799-1738094060` 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 :php-short:`\TYPO3\CMS\Backend\Domain\Repository\Localization\LocalizationRepository`
|
|
and use the new methods. The new methods return
|
|
:php:`\TYPO3\CMS\Core\Domain\RawRecord` objects instead of plain arrays.
|
|
|
|
getRecordLocalization()
|
|
-----------------------
|
|
|
|
.. code-block:: php
|
|
|
|
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()
|
|
-----------------------------
|
|
|
|
.. code-block:: php
|
|
|
|
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()
|
|
------------------
|
|
|
|
.. code-block:: php
|
|
|
|
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);
|
|
|
|
.. index:: PHP-API, FullyScanned, ext:backend
|