TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-100622-1681664078:
|
||||
|
||||
==============================================
|
||||
Deprecation: #100622 - Extbase feature toggles
|
||||
==============================================
|
||||
|
||||
See :issue:`100622`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Extbase has an own system for feature toggles next to the Core feature
|
||||
toggle API. It has always been marked as internal, but is used for
|
||||
a couple of toggles within the Extbase framework.
|
||||
|
||||
All toggles and the internal PHP API have been marked as deprecated
|
||||
in TYPO3 v12 and should be avoided.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The PHP API for Extbase toggles has always been marked as internal. It will
|
||||
be removed with TYPO3 v13.
|
||||
|
||||
The single toggles can still be used in TYPO3 v12, but their triggered
|
||||
functionality will be removed with TYPO3 v13, if set to `1`.
|
||||
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
Extensions should not rely on
|
||||
:php:`\TYPO3\CMS\Extbase\ConfigurationConfigurationManagerInterface->isFeatureEnabled()`.
|
||||
The method is marked as internal and should never have been used by extensions. The
|
||||
extension scanner still finds usages of this method in extensions as weak match.
|
||||
|
||||
All feature toggles have been marked as deprecated. Setting one of them to `1` in
|
||||
TypoScript will trigger a deprecation level log message, they will stop working with
|
||||
TYPO3 v13.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Extbase has three feature toggles in TYPO3 v12. All of them will be removed
|
||||
with TYPO3 v13. Instances with extensions setting those to `1` in TypoScript
|
||||
may need adaptions. Instances setting the toggles to `0` can simply remove them
|
||||
from TypoScript.
|
||||
|
||||
skipDefaultArguments = 1
|
||||
------------------------
|
||||
|
||||
This is an ancient toggle that was used before routing has been added with
|
||||
TYPO3 v9. It allowed to skip the `controller` and `action` argument in frontend
|
||||
plugin links, when linking to the default Extbase controller / action combination.
|
||||
This toggle has been documented as being broken in combination with
|
||||
:ref:`Extbase plugin enhancer <t3coreapi:routing-extbase-plugin-enhancer>` already.
|
||||
Consuming instances should switch to proper routing configuration instead.
|
||||
|
||||
ignoreAllEnableFieldsInBe = 1
|
||||
-----------------------------
|
||||
|
||||
This is another ancient toggle that triggers
|
||||
:php:`\TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings->setIgnoreEnableFields(true)`
|
||||
for Extbase repositories when used in backend scope. It allows ignoring default :php:`TCA`
|
||||
flags like suppressing of deleted records in queries.
|
||||
|
||||
Extbase-based backend modules that rely on this toggle being set to `1` can easily
|
||||
migrate this: When the repository in question is only used in backend context, the
|
||||
code below should trigger the same behavior. Note as with other query settings,
|
||||
this toggle needs to be used with care, otherwise backend users may see records
|
||||
they are not supposed to see.
|
||||
|
||||
.. code-block::php
|
||||
|
||||
/**
|
||||
* Overwrite createQuery to not respect enable fields.
|
||||
*/
|
||||
public function createQuery(): QueryInterface
|
||||
{
|
||||
$query = parent::createQuery();
|
||||
$query->getQuerySettings()->setIgnoreEnableFields(true);
|
||||
return $query;
|
||||
}
|
||||
|
||||
When the repository is used in both backend and frontend context, the code
|
||||
should be refactored a bit towards a public method that can be set by the
|
||||
Extbase backend controller only.
|
||||
|
||||
enableNamespacedArgumentsForBackend = 1
|
||||
---------------------------------------
|
||||
|
||||
This toggle has been introduced in TYPO3 v12. See :ref:`feature-97096`
|
||||
for more details. Extbase backend modules should no longer expect the
|
||||
namespace to be set. It may be necessary to adapt some Ajax calls and
|
||||
request-related argument checks in custom modules.
|
||||
|
||||
|
||||
.. index:: PHP-API, TypoScript, PartiallyScanned, ext:extbase
|
||||
Reference in New Issue
Block a user