Breaking: #107791 - Report interfaces removed
See forge#107791
Description
The Reports module has been refactored to use native backend submodules instead
of dynamic service-based report registration. Individual reports are now
registered as proper backend submodules in Configuration/.
As a result, the following public interfaces have been removed:
\TYPO3\CMS\ Reports\ Report Interface \TYPO3\CMS\ Reports\ Request Aware Report Interface
Impact
Extensions that register custom reports by implementing
\TYPO3\ or
\TYPO3\ will no longer work.
These reports will no longer appear in the backend Reports module.
Affected installations
TYPO3 installations with custom extensions that provide reports by implementing
\Report or
\Request.
Migration
Custom reports must be migrated to backend submodules.
Register as a submodule under `system_reports`:
use Vendor\MyExtension\Controller\MyReportController;
return [
'system_reports_myreport' => [
'parent' => 'system_reports',
'access' => 'admin',
'path' => '/module/system/reports/myreport',
'iconIdentifier' => 'module-reports',
'labels' => [
'title' => 'my_extension.messages:myreport.title',
'description' => 'my_extension.messages:myreport.description',
],
'routes' => [
'_default' => [
'target' => MyReportController::class . '::handleRequest',
],
],
],
];
The controller should implement a standard PSR-7 request handler that returns a
\Psr\ instance.
Alternatively, you can create a standalone module with
show enabled if you need to group multiple reports
under your own container module.