[FEATURE] Refactor AdminPanel API to use composition
[Packages/TYPO3.CMS.git] / typo3 / sysext / adminpanel / Classes / ModuleApi / InitializableInterface.php
1 <?php
2 declare(strict_types = 1);
3
4 namespace TYPO3\CMS\Adminpanel\ModuleApi;
5
6 /*
7 * This file is part of the TYPO3 CMS project.
8 *
9 * It is free software; you can redistribute it and/or modify it under
10 * the terms of the GNU General Public License, either version 2
11 * of the License, or any later version.
12 *
13 * For the full copyright and license information, please read the
14 * LICENSE.txt file that was distributed with this source code.
15 *
16 * The TYPO3 project - inspiring people to share!
17 */
18
19 use Psr\Http\Message\ServerRequestInterface;
20
21 /**
22 * Adminpanel interface to denote that a module has tasks to perform on initialization of the request
23 *
24 * Modules that need to set data / options early in the rendering process to be able to collect data, should implement
25 * this interface - for example the log module uses the initialization to register the admin panel log collection early
26 * in the rendering process.
27 *
28 * Initialize is called in the PSR-15 middleware stack through admin panel initialisation via the AdminPanel MainController.
29 *
30 * @see \TYPO3\CMS\Adminpanel\Middleware\AdminPanelInitiator::process()
31 * @see \TYPO3\CMS\Adminpanel\Controller\MainController::initialize()
32 */
33 interface InitializableInterface
34 {
35 /**
36 * Initialize the module - runs early in a TYPO3 request
37 *
38 * @param ServerRequestInterface $request
39 */
40 public function initializeModule(ServerRequestInterface $request): void;
41 }