[TASK] Migrate AdminPanel modules to TypeScript
[Packages/TYPO3.CMS.git] / typo3 / sysext / adminpanel / Classes / Modules / TsDebugModule.php
1 <?php
2 declare(strict_types = 1);
3
4 namespace TYPO3\CMS\Adminpanel\Modules;
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 TYPO3\CMS\Adminpanel\ModuleApi\AbstractModule;
20 use TYPO3\CMS\Adminpanel\ModuleApi\ShortInfoProviderInterface;
21 use TYPO3\CMS\Core\TimeTracker\TimeTracker;
22 use TYPO3\CMS\Core\Utility\GeneralUtility;
23
24 /**
25 * Admin Panel TypoScript Debug Module
26 */
27 class TsDebugModule extends AbstractModule implements ShortInfoProviderInterface
28 {
29 /**
30 * @inheritdoc
31 */
32 public function getIdentifier(): string
33 {
34 return 'tsdebug';
35 }
36
37 /**
38 * @inheritdoc
39 */
40 public function getIconIdentifier(): string
41 {
42 return 'mimetypes-x-content-template-static';
43 }
44
45 /**
46 * @inheritdoc
47 */
48 public function getLabel(): string
49 {
50 return $this->getLanguageService()->sL(
51 'LLL:EXT:adminpanel/Resources/Private/Language/locallang_tsdebug.xlf:module.label'
52 );
53 }
54
55 /**
56 * @inheritdoc
57 */
58 public function getShortInfo(): string
59 {
60 $messageCount = 0;
61 foreach ($this->getTimeTracker()->tsStackLog as $log) {
62 $messageCount += count($log['message'] ?? []);
63 }
64 return sprintf(
65 $this->getLanguageService()->sL(
66 'LLL:EXT:adminpanel/Resources/Private/Language/locallang_tsdebug.xlf:module.shortinfo'
67 ),
68 $messageCount
69 );
70 }
71
72 /**
73 * @return TimeTracker
74 */
75 protected function getTimeTracker(): TimeTracker
76 {
77 return GeneralUtility::makeInstance(TimeTracker::class);
78 }
79 }