[FEATURE] Refactor AdminPanel API to use composition
[Packages/TYPO3.CMS.git] / typo3 / sysext / adminpanel / Classes / ModuleApi / DataProviderInterface.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 provides data to be stored for the current request
23 *
24 * Adminpanel modules can save data to the adminpanel request cache and access this data in the rendering process.
25 * Data necessary for rendering the module content has to be returned via this interface implementation, as this allows
26 * for separate data collection and rendering and is a pre-requisite for a standalone debug tool.
27 */
28 interface DataProviderInterface
29 {
30
31 /**
32 * @param \Psr\Http\Message\ServerRequestInterface $request
33 * @return \TYPO3\CMS\Adminpanel\ModuleApi\ModuleData
34 */
35 public function getDataToStore(ServerRequestInterface $request): ModuleData;
36 }