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
Report
or
Request will no longer work. The reports will
not 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:
return [
'system_reports_myreport' => [
'parent' => 'system_reports',
'access' => 'admin',
'path' => '/module/system/reports/myreport',
'iconIdentifier' => 'module-reports',
'labels' => [
'title' => 'LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:myreport.title',
'description' => 'LLL:EXT:my_extension/Resources/Private/Language/locallang.xlf:myreport.description',
],
'routes' => [
'_default' => [
'target' => \Vendor\MyExtension\Controller\MyReportController::class . '::handleRequest',
],
],
],
];
The controller should implement a standard PSR-7 request handler that returns
a
Response.
Alternatively, you can create a standalone module with
show
enabled if you need to group multiple reports under your own container module.