Files
cms-core/Documentation/Changelog/11.0/Breaking-92513-MethodSignatureChangeOfTYPO3CMSExtbaseMvcControllerControllerInterfaceprocessRequest.rst
T

47 lines
1.8 KiB
ReStructuredText

.. include:: /Includes.rst.txt
.. _breaking-92513:
=======================================================================================================================
Breaking: #92513 - Method signature change of TYPO3\\CMS\\Extbase\\Mvc\\Controller\\ControllerInterface::processRequest
=======================================================================================================================
See :issue:`92513`
Description
===========
The signature of method :php:`TYPO3\CMS\Extbase\Mvc\Controller\ControllerInterface::processRequest`
changed in the regard that no longer :php:`$request` and :php:`$response` are passed into it.
Instead, only a :php:`$request` argument is needed. Additionally, that method now requires to return a response.
Impact
======
This change affects all classes that either implement said interface directly (presumably none)
and those classes (controllers) that override method :php:`processRequest()`
of class :php:`TYPO3\CMS\Extbase\Mvc\Controller\ActionController`. Those, that override said method
will experience the following fatal error:
`Declaration of ... must be compatible with TYPO3\CMS\Extbase\Mvc\Controller\ControllerInterface::processRequest(TYPO3\CMS\Extbase\Mvc\RequestInterface $request): TYPO3\CMS\Extbase\Mvc\ResponseInterface`.
Affected Installations
======================
All installations that override method :php:`processRequest()` of class :php:`TYPO3\CMS\Extbase\Mvc\Controller\ActionController`.
Migration
=========
There are two steps to migrate:
- Remove the now superfluous :php:`$response` argument
- Return a response object.
The latter is usually achieved by calling :php:`return parent::processRequest($request)` instead of just :php:`parent::processRequest($request)`.
.. index:: PHP-API, NotScanned, ext:extbase