TYPO3 v15 dev-main snapshot ()
This commit is contained in:
+103
@@ -0,0 +1,103 @@
|
||||
.. 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
|
||||
Reference in New Issue
Block a user