TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:09 +02:00
commit af8cc155b5
6818 changed files with 642608 additions and 0 deletions
@@ -0,0 +1,74 @@
.. include:: /Includes.rst.txt
.. _deprecation-104773-1724940753:
=================================================================
Deprecation: #104773 - ext:backend LoginProviderInterface changes
=================================================================
See :issue:`104773`
Description
===========
Method :php:`\TYPO3\CMS\Backend\LoginProvider\LoginProviderInterface->render()` has been marked as deprecated
and is substituted by :php:`LoginProviderInterface->modifyView()` that will
be added to the interface in TYPO3 v14, removing :php:`render()` from the
interface in v14.
Related to this, event :php:`\TYPO3\CMS\Backend\LoginProvider\Event\ModifyPageLayoutOnLoginProviderSelectionEvent`
has been changed to deprecate :php:`getController()` and :php:`getPageRenderer()`,
while :php:`getRequest()` has been added. :php:`getView()` now typically returns
an instance of :php:`ViewInterface`.
This change is related to the general :ref:`View refactoring <feature-104773-1724939348>`.
Impact
======
The default :php-short:`\TYPO3\CMS\Backend\LoginProvider\LoginProviderInterface`
implementation is
:php-short:`\TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider`
provided by ext:core. This consumer has been adapted.
Using :php:`LoginProviderInterface->render()` in TYPO3 v13 will trigger a
deprecation level log entry and will fail in v14.
Affected installations
======================
Instances with custom login providers that change the TYPO3 backend login
field rendering may be affected. The extension scanner is not configured to
find usages, since method name :php:`render()` is too common. A deprecation
level log message is triggered upon use of the old method.
Migration
=========
Consumers of :php-short:`\TYPO3\CMS\Backend\LoginProvider\LoginProviderInterface`
should implement :php:`modifyView()` instead, the transition should be smooth.
Consumers that need the :php-short:`\TYPO3\CMS\Core\Page\PageRenderer`
for JavaScript magic, should use :ref:`dependency injection <t3coreapi:Dependency-Injection>`
to receive an instance.
The default implementation in :php-short:`\TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider`
is a good example. Extensions that need to configure additional template, layout or
partial lookup paths can extend them:
.. code-block:: php
if ($view instanceof FluidViewAdapter) {
$templatePaths = $view->getRenderingContext()->getTemplatePaths();
$templateRootPaths = $templatePaths->getTemplateRootPaths();
$templateRootPaths[] = 'EXT:my_extension/Resources/Private/Templates';
$templatePaths->setTemplateRootPaths($templateRootPaths);
}
Consumers of :php-short:`\TYPO3\CMS\Backend\LoginProvider\Event\ModifyPageLayoutOnLoginProviderSelectionEvent`
should use the request instead, and/or should get an instance of
:php-short:`\TYPO3\CMS\Core\Page\PageRenderer` injected as well.
.. index:: PHP-API, NotScanned, ext:backend