‪TYPO3CMS  9.5
MaintenanceController.php
Go to the documentation of this file.
1 <?php
2 declare(strict_types = 1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
18 use Psr\Http\Message\ResponseInterface;
19 use Psr\Http\Message\ServerRequestInterface;
20 use TYPO3\CMS\Core\Configuration\ConfigurationManager;
40 
46 {
53  public function ‪cardsAction(ServerRequestInterface $request): ResponseInterface
54  {
55  $view = $this->‪initializeStandaloneView($request, 'Maintenance/Cards.html');
56  return new ‪JsonResponse([
57  'success' => true,
58  'html' => $view->render(),
59  ]);
60  }
61 
67  public function ‪cacheClearAllAction(): ResponseInterface
68  {
69  GeneralUtility::makeInstance(ClearCacheService::class)->clearAll();
70  GeneralUtility::makeInstance(OpcodeCacheService::class)->clearAllActive();
71  $messageQueue = (new ‪FlashMessageQueue('install'))->enqueue(
72  new ‪FlashMessage('Successfully cleared all caches and all available opcode caches.', 'Caches cleared')
73  );
74  return new ‪JsonResponse([
75  'success' => true,
76  'status' => $messageQueue,
77  ]);
78  }
79 
86  public function ‪clearTypo3tempFilesStatsAction(ServerRequestInterface $request): ResponseInterface
87  {
89  $view = $this->‪initializeStandaloneView($request, 'Maintenance/ClearTypo3tempFiles.html');
90  $formProtection = ‪FormProtectionFactory::get(InstallToolFormProtection::class);
91  $view->assignMultiple([
92  'clearTypo3tempFilesToken' => $formProtection->generateToken('installTool', 'clearTypo3tempFiles'),
93  ]);
94  return new ‪JsonResponse(
95  [
96  'success' => true,
97  'stats' => (new ‪Typo3tempFileService())->getDirectoryStatistics(),
98  'html' => $view->render(),
99  ]
100  );
101  }
102 
109  public function ‪clearTypo3tempFilesAction(ServerRequestInterface $request): ResponseInterface
110  {
112  $messageQueue = new ‪FlashMessageQueue('install');
113  $typo3tempFileService = new ‪Typo3tempFileService();
114  $folder = $request->getParsedBody()['install']['folder'];
115  // storageUid is an optional post param if FAL storages should be cleaned
116  $storageUid = $request->getParsedBody()['install']['storageUid'] ?? null;
117  if ($storageUid === null) {
118  $typo3tempFileService->clearAssetsFolder($folder);
119  $messageQueue->enqueue(new ‪FlashMessage('Cleared files in "' . $folder . '" folder'));
120  } else {
121  $storageUid = (int)$storageUid;
122  $failedDeletions = $typo3tempFileService->clearProcessedFiles($storageUid);
123  if ($failedDeletions) {
124  $messageQueue->enqueue(new ‪FlashMessage(
125  'Failed to delete ' . $failedDeletions . ' processed files. See TYPO3 log (by default typo3temp/var/log/typo3_*.log)',
126  '',
128  ));
129  } else {
130  $messageQueue->enqueue(new ‪FlashMessage('Cleared processed files'));
131  }
132  }
133  return new ‪JsonResponse([
134  'success' => true,
135  'status' => $messageQueue,
136  ]);
137  }
138 
144  public function ‪dumpAutoloadAction(): ResponseInterface
145  {
146  $messageQueue = new ‪FlashMessageQueue('install');
148  $messageQueue->enqueue(new ‪FlashMessage(
149  'Skipped generating additional class loading information in composer mode.',
150  '',
152  ));
153  } else {
155  $messageQueue->enqueue(new ‪FlashMessage(
156  'Successfully dumped class loading information for extensions.'
157  ));
158  }
159  return new ‪JsonResponse([
160  'success' => true,
161  'status' => $messageQueue,
162  ]);
163  }
164 
171  public function ‪databaseAnalyzerAction(ServerRequestInterface $request): ResponseInterface
172  {
173  $view = $this->‪initializeStandaloneView($request, 'Maintenance/DatabaseAnalyzer.html');
174  $formProtection = ‪FormProtectionFactory::get(InstallToolFormProtection::class);
175  $view->assignMultiple([
176  'databaseAnalyzerExecuteToken' => $formProtection->generateToken('installTool', 'databaseAnalyzerExecute'),
177  ]);
178  return new ‪JsonResponse([
179  'success' => true,
180  'html' => $view->render(),
181  ]);
182  }
183 
190  public function ‪databaseAnalyzerAnalyzeAction(ServerRequestInterface $request): ResponseInterface
191  {
193  $messageQueue = new ‪FlashMessageQueue('install');
194  $suggestions = [];
195  try {
196  $sqlReader = GeneralUtility::makeInstance(SqlReader::class);
197  $sqlStatements = $sqlReader->getCreateTableStatementArray($sqlReader->getTablesDefinitionString());
198  $schemaMigrationService = GeneralUtility::makeInstance(SchemaMigrator::class);
199  $addCreateChange = $schemaMigrationService->getUpdateSuggestions($sqlStatements);
200 
201  // Aggregate the per-connection statements into one flat array
202  $addCreateChange = array_merge_recursive(...array_values($addCreateChange));
203  if (!empty($addCreateChange['create_table'])) {
204  $suggestion = [
205  'key' => 'addTable',
206  'label' => 'Add tables',
207  'enabled' => true,
208  'children' => [],
209  ];
210  foreach ($addCreateChange['create_table'] as $hash => $statement) {
211  $suggestion['children'][] = [
212  'hash' => $hash,
213  'statement' => $statement,
214  ];
215  }
216  $suggestions[] = $suggestion;
217  }
218  if (!empty($addCreateChange['add'])) {
219  $suggestion = [
220  'key' => 'addField',
221  'label' => 'Add fields to tables',
222  'enabled' => true,
223  'children' => [],
224  ];
225  foreach ($addCreateChange['add'] as $hash => $statement) {
226  $suggestion['children'][] = [
227  'hash' => $hash,
228  'statement' => $statement,
229  ];
230  }
231  $suggestions[] = $suggestion;
232  }
233  if (!empty($addCreateChange['change'])) {
234  $suggestion = [
235  'key' => 'change',
236  'label' => 'Change fields',
237  'enabled' => false,
238  'children' => [],
239  ];
240  foreach ($addCreateChange['change'] as $hash => $statement) {
241  $child = [
242  'hash' => $hash,
243  'statement' => $statement,
244  ];
245  if (isset($addCreateChange['change_currentValue'][$hash])) {
246  $child['current'] = $addCreateChange['change_currentValue'][$hash];
247  }
248  $suggestion['children'][] = $child;
249  }
250  $suggestions[] = $suggestion;
251  }
252 
253  // Difference from current to expected
254  $dropRename = $schemaMigrationService->getUpdateSuggestions($sqlStatements, true);
255 
256  // Aggregate the per-connection statements into one flat array
257  $dropRename = array_merge_recursive(...array_values($dropRename));
258  if (!empty($dropRename['change_table'])) {
259  $suggestion = [
260  'key' => 'renameTableToUnused',
261  'label' => 'Remove tables (rename with prefix)',
262  'enabled' => false,
263  'children' => [],
264  ];
265  foreach ($dropRename['change_table'] as $hash => $statement) {
266  $child = [
267  'hash' => $hash,
268  'statement' => $statement,
269  ];
270  if (!empty($dropRename['tables_count'][$hash])) {
271  $child['rowCount'] = $dropRename['tables_count'][$hash];
272  }
273  $suggestion['children'][] = $child;
274  }
275  $suggestions[] = $suggestion;
276  }
277  if (!empty($dropRename['change'])) {
278  $suggestion = [
279  'key' => 'renameTableFieldToUnused',
280  'label' => 'Remove unused fields (rename with prefix)',
281  'enabled' => false,
282  'children' => [],
283  ];
284  foreach ($dropRename['change'] as $hash => $statement) {
285  $suggestion['children'][] = [
286  'hash' => $hash,
287  'statement' => $statement,
288  ];
289  }
290  $suggestions[] = $suggestion;
291  }
292  if (!empty($dropRename['drop'])) {
293  $suggestion = [
294  'key' => 'deleteField',
295  'label' => 'Drop fields (really!)',
296  'enabled' => false,
297  'children' => [],
298  ];
299  foreach ($dropRename['drop'] as $hash => $statement) {
300  $suggestion['children'][] = [
301  'hash' => $hash,
302  'statement' => $statement,
303  ];
304  }
305  $suggestions[] = $suggestion;
306  }
307  if (!empty($dropRename['drop_table'])) {
308  $suggestion = [
309  'key' => 'deleteTable',
310  'label' => 'Drop tables (really!)',
311  'enabled' => false,
312  'children' => [],
313  ];
314  foreach ($dropRename['drop_table'] as $hash => $statement) {
315  $child = [
316  'hash' => $hash,
317  'statement' => $statement,
318  ];
319  if (!empty($dropRename['tables_count'][$hash])) {
320  $child['rowCount'] = $dropRename['tables_count'][$hash];
321  }
322  $suggestion['children'][] = $child;
323  }
324  $suggestions[] = $suggestion;
325  }
326  } catch (‪StatementException $e) {
327  $messageQueue->enqueue(new ‪FlashMessage(
328  $e->getMessage(),
329  'Database analysis failed',
331  ));
332  }
333  return new ‪JsonResponse([
334  'success' => true,
335  'status' => $messageQueue,
336  'suggestions' => $suggestions,
337  ]);
338  }
339 
346  public function ‪databaseAnalyzerExecuteAction(ServerRequestInterface $request): ResponseInterface
347  {
349  $messageQueue = new ‪FlashMessageQueue('install');
350  $selectedHashes = $request->getParsedBody()['install']['hashes'] ?? [];
351  if (empty($selectedHashes)) {
352  $messageQueue->enqueue(new ‪FlashMessage(
353  '',
354  'No database changes selected',
356  ));
357  } else {
358  $sqlReader = GeneralUtility::makeInstance(SqlReader::class);
359  $sqlStatements = $sqlReader->getCreateTableStatementArray($sqlReader->getTablesDefinitionString());
360  $schemaMigrationService = GeneralUtility::makeInstance(SchemaMigrator::class);
361  $statementHashesToPerform = array_flip($selectedHashes);
362  $results = $schemaMigrationService->migrate($sqlStatements, $statementHashesToPerform);
363  // Create error flash messages if any
364  foreach ($results as $errorMessage) {
365  $messageQueue->enqueue(new ‪FlashMessage(
366  'Error: ' . $errorMessage,
367  'Database update failed',
369  ));
370  }
371  $messageQueue->enqueue(new ‪FlashMessage(
372  'Executed database updates',
373  'Executed database updates'
374  ));
375  }
376  return new ‪JsonResponse([
377  'success' => true,
378  'status' => $messageQueue,
379  ]);
380  }
381 
388  public function ‪clearTablesStatsAction(ServerRequestInterface $request): ResponseInterface
389  {
390  $view = $this->‪initializeStandaloneView($request, 'Maintenance/ClearTables.html');
391  $formProtection = ‪FormProtectionFactory::get(InstallToolFormProtection::class);
392  $view->assignMultiple([
393  'clearTablesClearToken' => $formProtection->generateToken('installTool', 'clearTablesClear'),
394  ]);
395  return new ‪JsonResponse([
396  'success' => true,
397  'stats' => (new ‪ClearTableService())->getTableStatistics(),
398  'html' => $view->render(),
399  ]);
400  }
401 
409  public function ‪clearTablesClearAction(ServerRequestInterface $request): ResponseInterface
410  {
411  $table = $request->getParsedBody()['install']['table'];
412  if (empty($table)) {
413  throw new \RuntimeException(
414  'No table name given',
415  1501944076
416  );
417  }
418  (new ‪ClearTableService())->clearSelectedTable($table);
419  $messageQueue = (new ‪FlashMessageQueue('install'))->enqueue(
420  new ‪FlashMessage('Cleared table')
421  );
422  return new ‪JsonResponse([
423  'success' => true,
424  'status' => $messageQueue
425  ]);
426  }
433  public function ‪createAdminGetDataAction(ServerRequestInterface $request): ResponseInterface
434  {
435  $view = $this->‪initializeStandaloneView($request, 'Maintenance/CreateAdmin.html');
436  $formProtection = ‪FormProtectionFactory::get(InstallToolFormProtection::class);
437  $view->assignMultiple([
438  'createAdminToken' => $formProtection->generateToken('installTool', 'createAdmin'),
439  ]);
440  return new ‪JsonResponse([
441  'success' => true,
442  'html' => $view->render(),
443  ]);
444  }
445 
452  public function ‪createAdminAction(ServerRequestInterface $request): ResponseInterface
453  {
454  $username = preg_replace('/\\s/i', '', $request->getParsedBody()['install']['userName']);
455  $password = $request->getParsedBody()['install']['userPassword'];
456  $passwordCheck = $request->getParsedBody()['install']['userPasswordCheck'];
457  $isSystemMaintainer = ((bool)$request->getParsedBody()['install']['userSystemMaintainer'] == '1') ? true : false;
458 
459  $messages = new ‪FlashMessageQueue('install');
460 
461  if (strlen($username) < 1) {
462  $messages->enqueue(new ‪FlashMessage(
463  'No valid username given.',
464  'Administrator user not created',
466  ));
467  } elseif ($password !== $passwordCheck) {
468  $messages->enqueue(new ‪FlashMessage(
469  'Passwords do not match.',
470  'Administrator user not created',
472  ));
473  } elseif (strlen($password) < 8) {
474  $messages->enqueue(new ‪FlashMessage(
475  'Password must be at least eight characters long.',
476  'Administrator user not created',
478  ));
479  } else {
480  $connectionPool = GeneralUtility::makeInstance(ConnectionPool::class);
481  $userExists = $connectionPool->getConnectionForTable('be_users')
482  ->count(
483  'uid',
484  'be_users',
485  ['username' => $username]
486  );
487  if ($userExists) {
488  $messages->enqueue(new ‪FlashMessage(
489  'A user with username "' . $username . '" exists already.',
490  'Administrator user not created',
492  ));
493  } else {
494  $hashInstance = GeneralUtility::makeInstance(PasswordHashFactory::class)->getDefaultHashInstance('BE');
495  $hashedPassword = $hashInstance->getHashedPassword($password);
496  $adminUserFields = [
497  'username' => $username,
498  'password' => $hashedPassword,
499  'admin' => 1,
500  'tstamp' => ‪$GLOBALS['EXEC_TIME'],
501  'crdate' => ‪$GLOBALS['EXEC_TIME']
502  ];
503  $connectionPool->getConnectionForTable('be_users')->insert('be_users', $adminUserFields);
504 
505  if ($isSystemMaintainer) {
506 
507  // Get the new admin user uid juste created
508  $newAdminUserUid = (int)$connectionPool->getConnectionForTable('be_users')->lastInsertId('be_users');
509 
510  // Get the list of the existing systemMaintainer
511  $existingSystemMaintainersList = ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['systemMaintainers'] ?? [];
512 
513  // Add the new admin user to the existing systemMaintainer list
514  $newSystemMaintainersList = $existingSystemMaintainersList;
515  $newSystemMaintainersList[] = $newAdminUserUid;
516 
517  // Update the LocalConfiguration.php file with the new list
518  $configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class);
519  $configurationManager->setLocalConfigurationValuesByPathValuePairs(
520  ['SYS/systemMaintainers' => $newSystemMaintainersList]
521  );
522  }
523 
524  $messages->enqueue(new ‪FlashMessage(
525  '',
526  'Administrator created with username "' . $username . '".'
527  ));
528  }
529  }
530  return new ‪JsonResponse([
531  'success' => true,
532  'status' => $messages,
533  ]);
534  }
535 
544  public function ‪languagePacksGetDataAction(ServerRequestInterface $request): ResponseInterface
545  {
546  $view = $this->‪initializeStandaloneView($request, 'Maintenance/LanguagePacks.html');
547  $formProtection = ‪FormProtectionFactory::get(InstallToolFormProtection::class);
548  $view->assignMultiple([
549  'languagePacksActivateLanguageToken' => $formProtection->generateToken('installTool', 'languagePacksActivateLanguage'),
550  'languagePacksDeactivateLanguageToken' => $formProtection->generateToken('installTool', 'languagePacksDeactivateLanguage'),
551  'languagePacksUpdatePackToken' => $formProtection->generateToken('installTool', 'languagePacksUpdatePack'),
552  'languagePacksUpdateIsoTimesToken' => $formProtection->generateToken('installTool', 'languagePacksUpdateIsoTimes'),
553  ]);
554  // This action needs TYPO3_CONF_VARS for full GeneralUtility::getUrl() config
556  $languagePacksService = GeneralUtility::makeInstance(LanguagePackService::class);
557  $languagePacksService->updateMirrorBaseUrl();
558  $extensions = $languagePacksService->getExtensionLanguagePackDetails();
559  return new ‪JsonResponse([
560  'success' => true,
561  'languages' => $languagePacksService->getLanguageDetails(),
562  'extensions' => $extensions,
563  'activeLanguages' => $languagePacksService->getActiveLanguages(),
564  'activeExtensions' => array_column($extensions, 'key'),
565  'html' => $view->render(),
566  ]);
567  }
568 
575  public function ‪languagePacksActivateLanguageAction(ServerRequestInterface $request): ResponseInterface
576  {
577  $messageQueue = new ‪FlashMessageQueue('install');
578  $languagePackService = GeneralUtility::makeInstance(LanguagePackService::class);
579  ‪$locales = GeneralUtility::makeInstance(Locales::class);
580  $availableLanguages = $languagePackService->getAvailableLanguages();
581  $activeLanguages = $languagePackService->getActiveLanguages();
582  $iso = $request->getParsedBody()['install']['iso'];
583  $activateArray = [];
584  foreach ($availableLanguages as $availableIso => $name) {
585  if ($availableIso === $iso && !in_array($availableIso, $activeLanguages, true)) {
586  $activateArray[] = $iso;
587  $dependencies = ‪$locales->getLocaleDependencies($availableIso);
588  if (!empty($dependencies)) {
589  foreach ($dependencies as $dependency) {
590  if (!in_array($dependency, $activeLanguages, true)) {
591  $activateArray[] = $dependency;
592  }
593  }
594  }
595  }
596  }
597  if (!empty($activateArray)) {
598  $activeLanguages = array_merge($activeLanguages, $activateArray);
599  sort($activeLanguages);
600  $configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class);
601  $configurationManager->setLocalConfigurationValueByPath(
602  'EXTCONF/lang',
603  ['availableLanguages' => $activeLanguages]
604  );
605  $activationArray = [];
606  foreach ($activateArray as $activateIso) {
607  $activationArray[] = $availableLanguages[$activateIso] . ' (' . $activateIso . ')';
608  }
609  $messageQueue->enqueue(
610  new ‪FlashMessage(
611  'These languages have been activated: ' . implode(', ', $activationArray)
612  )
613  );
614  } else {
615  $messageQueue->enqueue(
616  new ‪FlashMessage('Language with ISO code "' . $iso . '" not found or already active.', '', ‪FlashMessage::ERROR)
617  );
618  }
619  return new ‪JsonResponse([
620  'success' => true,
621  'status' => $messageQueue,
622  ]);
623  }
624 
632  public function ‪languagePacksDeactivateLanguageAction(ServerRequestInterface $request): ResponseInterface
633  {
634  $messageQueue = new ‪FlashMessageQueue('install');
635  $languagePackService = GeneralUtility::makeInstance(LanguagePackService::class);
636  ‪$locales = GeneralUtility::makeInstance(Locales::class);
637  $availableLanguages = $languagePackService->getAvailableLanguages();
638  $activeLanguages = $languagePackService->getActiveLanguages();
639  $iso = $request->getParsedBody()['install']['iso'];
640  if (empty($iso)) {
641  throw new \RuntimeException('No iso code given', 1520109807);
642  }
643  $otherActiveLanguageDependencies = [];
644  foreach ($activeLanguages as $activeLanguage) {
645  if ($activeLanguage === $iso) {
646  continue;
647  }
648  $dependencies = ‪$locales->getLocaleDependencies($activeLanguage);
649  if (in_array($iso, $dependencies, true)) {
650  $otherActiveLanguageDependencies[] = $activeLanguage;
651  }
652  }
653  if (!empty($otherActiveLanguageDependencies)) {
654  // Error: Must disable dependencies first
655  $dependentArray = [];
656  foreach ($otherActiveLanguageDependencies as $dependency) {
657  $dependentArray[] = $availableLanguages[$dependency] . ' (' . $dependency . ')';
658  }
659  $messageQueue->enqueue(
660  new ‪FlashMessage(
661  'Language "' . $availableLanguages[$iso] . ' (' . $iso . ')" can not be deactivated. These'
662  . ' other languages depend on it and need to be deactivated before:'
663  . implode(', ', $dependentArray),
664  '',
666  )
667  );
668  } else {
669  if (in_array($iso, $activeLanguages, true)) {
670  // Deactivate this language
671  $newActiveLanguages = [];
672  foreach ($activeLanguages as $activeLanguage) {
673  if ($activeLanguage === $iso) {
674  continue;
675  }
676  $newActiveLanguages[] = $activeLanguage;
677  }
678  $configurationManager = GeneralUtility::makeInstance(ConfigurationManager::class);
679  $configurationManager->setLocalConfigurationValueByPath(
680  'EXTCONF/lang',
681  ['availableLanguages' => $newActiveLanguages]
682  );
683  $messageQueue->enqueue(
684  new ‪FlashMessage(
685  'Language "' . $availableLanguages[$iso] . ' (' . $iso . ')" has been deactivated'
686  )
687  );
688  } else {
689  $messageQueue->enqueue(
690  new ‪FlashMessage(
691  'Language "' . $availableLanguages[$iso] . ' (' . $iso . ')" has not been deactivated',
692  '',
694  )
695  );
696  }
697  }
698  return new ‪JsonResponse([
699  'success' => true,
700  'status' => $messageQueue,
701  ]);
702  }
703 
711  public function ‪languagePacksUpdatePackAction(ServerRequestInterface $request): ResponseInterface
712  {
714  $iso = $request->getParsedBody()['install']['iso'];
715  $key = $request->getParsedBody()['install']['extension'];
716  $languagePackService = GeneralUtility::makeInstance(LanguagePackService::class);
717  return new ‪JsonResponse([
718  'success' => true,
719  'packResult' => $languagePackService->languagePackDownload($key, $iso)
720  ]);
721  }
722 
729  public function ‪languagePacksUpdateIsoTimesAction(ServerRequestInterface $request): ResponseInterface
730  {
731  $isos = $request->getParsedBody()['install']['isos'];
732  $languagePackService = GeneralUtility::makeInstance(LanguagePackService::class);
733  $languagePackService->setLastUpdatedIsoCode($isos);
734 
735  // The cache manager is already instantiated in the install tool
736  // with some hacked settings to disable caching of extbase and fluid.
737  // We want a "fresh" object here to operate on a different cache setup.
738  // cacheManager implements SingletonInterface, so the only way to get a "fresh"
739  // instance is by circumventing makeInstance and/or the objectManager and
740  // using new directly!
741  $cacheManager = new \TYPO3\CMS\Core\Cache\CacheManager();
742  $cacheManager->setCacheConfigurations(‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']);
743  $cacheManager->getCache('l10n')->flush();
744 
745  return new ‪JsonResponse(['success' => true]);
746  }
747 
753  public function ‪resetBackendUserUcAction(): ResponseInterface
754  {
755  GeneralUtility::makeInstance(ConnectionPool::class)
756  ->getQueryBuilderForTable('be_users')
757  ->update('be_users')
758  ->set('uc', '')
759  ->execute();
760  $messageQueue = new ‪FlashMessageQueue('install');
761  $messageQueue->enqueue(new ‪FlashMessage(
762  'Preferences of all backend users have been reset',
763  'Reset preferences of all backend users'
764  ));
765  return new ‪JsonResponse([
766  'success' => true,
767  'status' => $messageQueue
768  ]);
769  }
770 }
‪TYPO3\CMS\Core\Crypto\PasswordHashing\PasswordHashFactory
Definition: PasswordHashFactory.php:25
‪TYPO3\CMS\Install\Controller\AbstractController\initializeStandaloneView
‪StandaloneView initializeStandaloneView(ServerRequestInterface $request, string $templatePath)
Definition: AbstractController.php:37
‪TYPO3\CMS\Core\FormProtection\FormProtectionFactory\get
‪static TYPO3 CMS Core FormProtection AbstractFormProtection get($classNameOrType='default',... $constructorArguments)
Definition: FormProtectionFactory.php:72
‪TYPO3\CMS\Core\Database\Schema\Exception\StatementException
Definition: StatementException.php:23
‪TYPO3\CMS\Install\Controller\MaintenanceController\dumpAutoloadAction
‪ResponseInterface dumpAutoloadAction()
Definition: MaintenanceController.php:144
‪TYPO3\CMS\Install\Controller\MaintenanceController\clearTypo3tempFilesStatsAction
‪ResponseInterface clearTypo3tempFilesStatsAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:86
‪TYPO3\CMS\Install\Controller\MaintenanceController\createAdminGetDataAction
‪ResponseInterface createAdminGetDataAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:433
‪TYPO3\CMS\Install\Controller\MaintenanceController\languagePacksGetDataAction
‪ResponseInterface languagePacksGetDataAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:544
‪TYPO3\CMS\Install\Controller\MaintenanceController\databaseAnalyzerExecuteAction
‪ResponseInterface databaseAnalyzerExecuteAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:346
‪TYPO3\CMS\Core\Core\ClassLoadingInformation\dumpClassLoadingInformation
‪static dumpClassLoadingInformation()
Definition: ClassLoadingInformation.php:87
‪TYPO3\CMS\Install\Controller\MaintenanceController\clearTypo3tempFilesAction
‪ResponseInterface clearTypo3tempFilesAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:109
‪TYPO3\CMS\Install\Service\Typo3tempFileService
Definition: Typo3tempFileService.php:30
‪TYPO3\CMS\Core\Core\ClassLoadingInformation
Definition: ClassLoadingInformation.php:32
‪TYPO3\CMS\Install\Controller\MaintenanceController\databaseAnalyzerAnalyzeAction
‪ResponseInterface databaseAnalyzerAnalyzeAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:190
‪TYPO3\CMS\Install\Controller\MaintenanceController\clearTablesStatsAction
‪ResponseInterface clearTablesStatsAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:388
‪TYPO3\CMS\Install\Controller\MaintenanceController\cardsAction
‪ResponseInterface cardsAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:53
‪TYPO3\CMS\Core\Localization\Locales
Definition: Locales.php:29
‪TYPO3\CMS\Core\Database\Schema\SqlReader
Definition: SqlReader.php:29
‪TYPO3\CMS\Install\Controller\AbstractController\loadExtLocalconfDatabaseAndExtTables
‪loadExtLocalconfDatabaseAndExtTables()
Definition: AbstractController.php:60
‪TYPO3\CMS\Install\Controller\MaintenanceController\languagePacksDeactivateLanguageAction
‪ResponseInterface languagePacksDeactivateLanguageAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:632
‪TYPO3\CMS\Core\Database\Schema\SchemaMigrator
Definition: SchemaMigrator.php:35
‪TYPO3\CMS\Install\Service\ClearTableService
Definition: ClearTableService.php:27
‪TYPO3\CMS\Core\FormProtection\InstallToolFormProtection
Definition: InstallToolFormProtection.php:60
‪TYPO3\CMS\Install\Controller\MaintenanceController\databaseAnalyzerAction
‪ResponseInterface databaseAnalyzerAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:171
‪TYPO3\CMS\Install\Controller\MaintenanceController\languagePacksActivateLanguageAction
‪ResponseInterface languagePacksActivateLanguageAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:575
‪TYPO3\CMS\Core\Messaging\AbstractMessage\WARNING
‪const WARNING
Definition: AbstractMessage.php:28
‪TYPO3\CMS\Install\Controller\MaintenanceController\cacheClearAllAction
‪ResponseInterface cacheClearAllAction()
Definition: MaintenanceController.php:67
‪TYPO3\CMS\Install\Controller
Definition: AbstractController.php:3
‪TYPO3\CMS\Install\Controller\MaintenanceController\languagePacksUpdateIsoTimesAction
‪ResponseInterface languagePacksUpdateIsoTimesAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:729
‪$locales
‪$locales
Definition: be_users.php:6
‪TYPO3\CMS\Install\Controller\MaintenanceController\createAdminAction
‪ResponseInterface createAdminAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:452
‪TYPO3\CMS\Core\Service\OpcodeCacheService
Definition: OpcodeCacheService.php:24
‪TYPO3\CMS\Install\Service\LanguagePackService
Definition: LanguagePackService.php:38
‪TYPO3\CMS\Core\Core\Environment\isComposerMode
‪static bool isComposerMode()
Definition: Environment.php:117
‪TYPO3\CMS\Core\Messaging\FlashMessage
Definition: FlashMessage.php:22
‪TYPO3\CMS\Core\FormProtection\FormProtectionFactory
Definition: FormProtectionFactory.php:45
‪TYPO3\CMS\Core\Http\JsonResponse
Definition: JsonResponse.php:25
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:5
‪TYPO3\CMS\Core\Core\Environment
Definition: Environment.php:39
‪TYPO3\CMS\Install\Controller\MaintenanceController
Definition: MaintenanceController.php:46
‪TYPO3\CMS\Install\Controller\AbstractController
Definition: AbstractController.php:28
‪TYPO3\CMS\Core\Messaging\AbstractMessage\NOTICE
‪const NOTICE
Definition: AbstractMessage.php:25
‪TYPO3\CMS\Install\Controller\MaintenanceController\languagePacksUpdatePackAction
‪ResponseInterface languagePacksUpdatePackAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:711
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:44
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:45
‪TYPO3\CMS\Core\Messaging\FlashMessageQueue
Definition: FlashMessageQueue.php:25
‪TYPO3\CMS\Install\Service\ClearCacheService
Definition: ClearCacheService.php:27
‪TYPO3\CMS\Install\Controller\MaintenanceController\resetBackendUserUcAction
‪ResponseInterface resetBackendUserUcAction()
Definition: MaintenanceController.php:753
‪TYPO3\CMS\Core\Messaging\AbstractMessage\ERROR
‪const ERROR
Definition: AbstractMessage.php:29
‪TYPO3\CMS\Install\Controller\MaintenanceController\clearTablesClearAction
‪ResponseInterface clearTablesClearAction(ServerRequestInterface $request)
Definition: MaintenanceController.php:409