156 lines
4.7 KiB
ReStructuredText
156 lines
4.7 KiB
ReStructuredText
.. include:: /Includes.rst.txt
|
|
|
|
.. _deprecation-106393-1742454612:
|
|
|
|
========================================================
|
|
Deprecation: #106393 - Various methods in BackendUtility
|
|
========================================================
|
|
|
|
See :issue:`106393`
|
|
|
|
Description
|
|
===========
|
|
|
|
Due to the introduction of the Schema API, several methods of
|
|
:php:`\TYPO3\CMS\Backend\Utility\BackendUtility` that retrieve
|
|
information from :php:`$GLOBALS['TCA']` have been deprecated:
|
|
|
|
* :php:`BackendUtility::getCommonSelectFields()`
|
|
* :php:`BackendUtility::getItemLabel()`
|
|
* :php:`BackendUtility::isTableLocalizable()`
|
|
* :php:`BackendUtility::isTableWorkspaceEnabled()`
|
|
* :php:`BackendUtility::isRootLevelRestrictionIgnored()`
|
|
* :php:`BackendUtility::isWebMountRestrictionIgnored()`
|
|
* :php:`BackendUtility::resolveFileReferences()`
|
|
|
|
Impact
|
|
======
|
|
|
|
Calling any of the mentioned methods now triggers a deprecation-level log
|
|
entry and will stop working in TYPO3 v15.0.
|
|
|
|
The extension scanner reports usages as a **strong** match.
|
|
|
|
Affected installations
|
|
======================
|
|
|
|
Instances or extensions that directly call these methods are affected.
|
|
|
|
Migration
|
|
=========
|
|
|
|
The migration strategy is the same for all cases:
|
|
use the corresponding Schema API methods directly in your code.
|
|
In most cases, you'll need to inject
|
|
:php-short:`\TYPO3\CMS\Core\Schema\TcaSchemaFactory` via dependency injection.
|
|
|
|
getCommonSelectFields
|
|
---------------------
|
|
|
|
No substitution is available. The method was marked as `@internal` already.
|
|
If your code depends on this functionality, copy the method into your own
|
|
extension.
|
|
|
|
getItemLabel
|
|
------------
|
|
|
|
.. code-block:: php
|
|
|
|
use TYPO3\CMS\Backend\Utility\BackendUtility;
|
|
use TYPO3\CMS\Core\Schema\TcaSchemaCapability;
|
|
use TYPO3\CMS\Core\Schema\TcaSchemaFactory;
|
|
|
|
// Before
|
|
return BackendUtility::getItemLabel('pages', 'title');
|
|
|
|
// After (retrieve an instance of TcaSchemaFactory via dependency
|
|
// injection of TYPO3\CMS\Core\Schema\TcaSchemaFactory)
|
|
$schema = $this->schemaFactory->has('pages')
|
|
? $this->schemaFactory->get('pages')
|
|
: null;
|
|
return $schema !== null && $schema->hasField('title')
|
|
? $schema->getField('title')->getLabel()
|
|
: null;
|
|
|
|
isTableLocalizable
|
|
------------------
|
|
|
|
.. code-block:: php
|
|
|
|
use TYPO3\CMS\Backend\Utility\BackendUtility;
|
|
use TYPO3\CMS\Core\Schema\TcaSchemaCapability;
|
|
use TYPO3\CMS\Core\Schema\TcaSchemaFactory;
|
|
|
|
// Before
|
|
return BackendUtility::isTableLocalizable('pages');
|
|
|
|
// After (retrieve an instance of TcaSchemaFactory via dependency
|
|
// injection of TYPO3\CMS\Core\Schema\TcaSchemaFactory)
|
|
return $this->schemaFactory->has('pages')
|
|
&& $this->schemaFactory->get('pages')
|
|
->hasCapability(TcaSchemaCapability::Language);
|
|
|
|
isTableWorkspaceEnabled
|
|
-----------------------
|
|
|
|
.. code-block:: php
|
|
|
|
use TYPO3\CMS\Backend\Utility\BackendUtility;
|
|
use TYPO3\CMS\Core\Schema\TcaSchemaCapability;
|
|
use TYPO3\CMS\Core\Schema\TcaSchemaFactory;
|
|
|
|
// Before
|
|
return BackendUtility::isTableWorkspaceEnabled('pages');
|
|
|
|
// After (retrieve an instance of TcaSchemaFactory via dependency
|
|
// injection of TYPO3\CMS\Core\Schema\TcaSchemaFactory)
|
|
return $this->schemaFactory->has('pages')
|
|
&& $this->schemaFactory->get('pages')
|
|
->hasCapability(TcaSchemaCapability::Workspace);
|
|
|
|
isRootLevelRestrictionIgnored
|
|
-----------------------------
|
|
|
|
.. code-block:: php
|
|
|
|
use TYPO3\CMS\Backend\Utility\BackendUtility;
|
|
use TYPO3\CMS\Core\Schema\TcaSchemaCapability;
|
|
use TYPO3\CMS\Core\Schema\TcaSchemaFactory;
|
|
|
|
// Before
|
|
return BackendUtility::isRootLevelRestrictionIgnored('pages');
|
|
|
|
// After (retrieve an instance of TcaSchemaFactory via dependency
|
|
// injection of TYPO3\CMS\Core\Schema\TcaSchemaFactory)
|
|
return $this->schemaFactory->has('pages')
|
|
&& $this->schemaFactory->get('pages')
|
|
->getCapability(
|
|
TcaSchemaCapability::RestrictionRootLevel
|
|
)->shallIgnoreRootLevelRestriction();
|
|
|
|
isWebMountRestrictionIgnored
|
|
----------------------------
|
|
|
|
.. code-block:: php
|
|
|
|
use TYPO3\CMS\Backend\Utility\BackendUtility;
|
|
use TYPO3\CMS\Core\Schema\TcaSchemaCapability;
|
|
use TYPO3\CMS\Core\Schema\TcaSchemaFactory;
|
|
|
|
// Before
|
|
return BackendUtility::isWebMountRestrictionIgnored('pages');
|
|
|
|
// After (retrieve an instance of TcaSchemaFactory via dependency
|
|
// injection of TYPO3\CMS\Core\Schema\TcaSchemaFactory)
|
|
return $this->schemaFactory->has('pages')
|
|
&& $this->schemaFactory->get('pages')
|
|
->hasCapability(TcaSchemaCapability::RestrictionWebMount);
|
|
|
|
resolveFileReferences
|
|
---------------------
|
|
|
|
No substitution is available. Copy the method into your own codebase and adapt
|
|
it as needed.
|
|
|
|
.. index:: TCA, FullyScanned, ext:core
|