Breaking: #92513 - Method signature change of TYPO3\CMS\Extbase\Mvc\Controller\ControllerInterface::processRequest

See forge#92513

Description

The signature of method TYPO3\CMS\Extbase\Mvc\Controller\ControllerInterface::processRequest changed in the regard that no longer $request and $response are passed into it. Instead, only a $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 processRequest() of class 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 processRequest() of class TYPO3\CMS\Extbase\Mvc\Controller\ActionController.

Migration

There are two steps to migrate:

  • Remove the now superfluous $response argument

  • Return a response object.

The latter is usually achieved by calling return parent::processRequest($request) instead of just parent::processRequest($request).