‪TYPO3CMS  ‪main
ServiceProvider.php
Go to the documentation of this file.
1 <?php
2 
3 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 namespace ‪TYPO3\CMS\Core;
19 
20 use Psr\Container\ContainerInterface;
21 use Psr\EventDispatcher\EventDispatcherInterface;
22 use Symfony\Component\Console\Command\HelpCommand;
23 use Symfony\Contracts\EventDispatcher\EventDispatcherInterface as SymfonyEventDispatcherInterface;
24 use ‪TYPO3\CMS\Core\Adapter\EventDispatcherAdapter as SymfonyEventDispatcher;
29 use TYPO3\CMS\Core\DependencyInjection\ContainerBuilder;
32 use TYPO3\CMS\Core\Package\PackageManager;
36 
41 {
42  protected static function ‪getPackagePath(): string
43  {
44  return __DIR__ . '/../';
45  }
46 
47  protected static function ‪getPackageName(): string
48  {
49  return 'typo3/cms-core';
50  }
51 
52  public function ‪getFactories(): array
53  {
54  return [
55  SymfonyEventDispatcher::class => [ static::class, 'getSymfonyEventDispatcher' ],
56  Cache\CacheManager::class => [ static::class, 'getCacheManager' ],
57  Database\ConnectionPool::class => [ static::class, 'getConnectionPool' ],
58  Charset\CharsetConverter::class => [ static::class, 'getCharsetConverter' ],
59  Configuration\SiteConfiguration::class => [ static::class, 'getSiteConfiguration' ],
60  Command\ListCommand::class => [ static::class, 'getListCommand' ],
61  HelpCommand::class => [ static::class, 'getHelpCommand' ],
62  Command\CacheFlushCommand::class => [ static::class, 'getCacheFlushCommand' ],
63  Command\CacheWarmupCommand::class => [ static::class, 'getCacheWarmupCommand' ],
64  Command\DumpAutoloadCommand::class => [ static::class, 'getDumpAutoloadCommand' ],
65  Console\CommandApplication::class => [ static::class, 'getConsoleCommandApplication' ],
66  Console\CommandRegistry::class => [ static::class, 'getConsoleCommandRegistry' ],
67  Context\Context::class => [ static::class, 'getContext' ],
68  Core\BootService::class => [ static::class, 'getBootService' ],
69  Crypto\PasswordHashing\PasswordHashFactory::class => [ static::class, 'getPasswordHashFactory' ],
70  Database\Schema\SchemaMigrator::class => [ static::class, 'getSchemaMigrator' ],
71  Database\Schema\Parser\Parser::class => [ static::class, 'getSchemaParser' ],
72  EventDispatcher\EventDispatcher::class => [ static::class, 'getEventDispatcher' ],
73  EventDispatcher\ListenerProvider::class => [ static::class, 'getEventListenerProvider' ],
74  FormProtection\FormProtectionFactory::class => [ static::class, 'getFormProtectionFactory' ],
75  Http\Client\GuzzleClientFactory::class => [ static::class, 'getGuzzleClientFactory' ],
76  Http\MiddlewareStackResolver::class => [ static::class, 'getMiddlewareStackResolver' ],
77  Http\RequestFactory::class => [ static::class, 'getRequestFactory' ],
78  Imaging\IconFactory::class => [ static::class, 'getIconFactory' ],
79  Imaging\IconRegistry::class => [ static::class, 'getIconRegistry' ],
80  Localization\LanguageServiceFactory::class => [ static::class, 'getLanguageServiceFactory' ],
81  Localization\LanguageStore::class => [ static::class, 'getLanguageStore' ],
82  Localization\Locales::class => [ static::class, 'getLocales' ],
83  Localization\LocalizationFactory::class => [ static::class, 'getLocalizationFactory' ],
84  Mail\TransportFactory::class => [ static::class, 'getMailTransportFactory' ],
85  Messaging\FlashMessageService::class => [ static::class, 'getFlashMessageService' ],
86  Middleware\ResponsePropagation::class => [ static::class, 'getResponsePropagationMiddleware' ],
87  Middleware\VerifyHostHeader::class => [ static::class, 'getVerifyHostHeaderMiddleware' ],
88  Package\FailsafePackageManager::class => [ static::class, 'getFailsafePackageManager' ],
89  Package\Cache\PackageDependentCacheIdentifier::class => [ static::class, 'getPackageDependentCacheIdentifier' ],
90  Routing\BackendEntryPointResolver::class => [ static::class, 'getBackendEntryPointResolver' ],
91  Routing\RequestContextFactory::class => [ static::class, 'getRequestContextFactory' ],
92  Registry::class => [ static::class, 'getRegistry' ],
93  Resource\Index\FileIndexRepository::class => [ static::class, 'getFileIndexRepository' ],
94  Resource\Index\MetaDataRepository::class => [ static::class, 'getMetaDataRepository' ],
95  Resource\Driver\DriverRegistry::class => [ static::class, 'getDriverRegistry' ],
96  Resource\ProcessedFileRepository::class => [ static::class, 'getProcessedFileRepository' ],
97  Resource\ResourceFactory::class => [ static::class, 'getResourceFactory' ],
98  Resource\StorageRepository::class => [ static::class, 'getStorageRepository' ],
99  Service\DependencyOrderingService::class => [ static::class, 'getDependencyOrderingService' ],
100  Service\FlexFormService::class => [ static::class, 'getFlexFormService' ],
101  Service\OpcodeCacheService::class => [ static::class, 'getOpcodeCacheService' ],
102  TypoScript\TypoScriptStringFactory::class => [ static::class, 'getTypoScriptStringFactory' ],
103  TypoScript\TypoScriptService::class => [ static::class, 'getTypoScriptService' ],
104  TypoScript\AST\Traverser\AstTraverser::class => [ static::class, 'getAstTraverser' ],
105  TypoScript\AST\CommentAwareAstBuilder::class => [ static::class, 'getCommentAwareAstBuilder' ],
106  TypoScript\Tokenizer\LosslessTokenizer::class => [ static::class, 'getLosslessTokenizer'],
107  'icons' => [ static::class, 'getIcons' ],
108  'middlewares' => [ static::class, 'getMiddlewares' ],
109  'content.security.policies' => [ static::class, 'getContentSecurityPolicies' ],
110  ];
111  }
112 
113  public function ‪getExtensions(): array
114  {
115  return [
116  Console\CommandRegistry::class => [ static::class, 'configureCommands' ],
117  Imaging\IconRegistry::class => [ static::class, 'configureIconRegistry' ],
118  EventDispatcherInterface::class => [ static::class, 'provideFallbackEventDispatcher' ],
119  EventDispatcher\ListenerProvider::class => [ static::class, 'extendEventListenerProvider' ],
120  ] + parent::getExtensions();
121  }
122 
123  public static function ‪getSymfonyEventDispatcher(ContainerInterface $container): SymfonyEventDispatcherInterface
124  {
125  return ‪self::new($container, SymfonyEventDispatcher::class, [
126  $container->get(EventDispatcherInterface::class),
127  ]);
128  }
129 
130  public static function ‪getCacheManager(ContainerInterface $container): Cache\‪CacheManager
131  {
132  if (!$container->get('boot.state')->complete) {
133  throw new \LogicException(Cache\CacheManager::class . ' can not be injected/instantiated during ext_localconf.php or TCA loading. Use lazy loading instead.', 1638976434);
134  }
135 
136  $cacheConfigurations = ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations'] ?? [];
137  $disableCaching = $container->get('boot.state')->cacheDisabled;
138  $defaultCaches = [
139  $container->get('cache.core'),
140  $container->get('cache.assets'),
141  $container->get('cache.di'),
142  ];
143 
144  $cacheManager = ‪self::new($container, Cache\CacheManager::class, [$disableCaching]);
145  $cacheManager->setCacheConfigurations($cacheConfigurations);
146  $cacheConfigurations['di']['groups'] = ['system'];
147  foreach ($defaultCaches as $cache) {
148  $cacheManager->registerCache($cache, $cacheConfigurations[$cache->getIdentifier()]['groups'] ?? ['all']);
149  }
150 
151  return $cacheManager;
152  }
153 
154  public static function ‪getConnectionPool(ContainerInterface $container): Database\‪ConnectionPool
155  {
156  if (!$container->get('boot.state')->complete) {
157  throw new \LogicException(Database\ConnectionPool::class . ' can not be injected/instantiated during ext_localconf.php or TCA loading. Use lazy loading instead.', 1638976490);
158  }
159 
160  return ‪self::new($container, Database\ConnectionPool::class);
161  }
162 
163  public static function ‪getCharsetConverter(ContainerInterface $container): Charset\CharsetConverter
164  {
165  return ‪self::new($container, Charset\CharsetConverter::class);
166  }
167 
168  public static function ‪getSiteConfiguration(ContainerInterface $container): Configuration\SiteConfiguration
169  {
170  return ‪self::new($container, Configuration\SiteConfiguration::class, [
171  ‪Environment::getConfigPath() . '/sites',
172  $container->get(EventDispatcherInterface::class),
173  $container->get('cache.core'),
174  ]);
175  }
176 
177  public static function ‪getListCommand(ContainerInterface $container): Command\ListCommand
178  {
179  return new ‪Command\ListCommand(
180  $container,
181  $container->get(Core\BootService::class)
182  );
183  }
184 
185  public static function ‪getHelpCommand(ContainerInterface $container): HelpCommand
186  {
187  return new HelpCommand();
188  }
189 
190  public static function ‪getCacheFlushCommand(ContainerInterface $container): Command\CacheFlushCommand
191  {
192  return new ‪Command\CacheFlushCommand(
193  $container->get(Core\BootService::class),
194  $container->get('cache.di')
195  );
196  }
197 
198  public static function ‪getCacheWarmupCommand(ContainerInterface $container): Command\CacheWarmupCommand
199  {
201  $container->get(ContainerBuilder::class),
202  $container->get(Package\PackageManager::class),
203  $container->get(Core\BootService::class),
204  $container->get('cache.di')
205  );
206  }
207 
208  public static function ‪getDumpAutoloadCommand(ContainerInterface $container): Command\DumpAutoloadCommand
209  {
210  return new ‪Command\DumpAutoloadCommand();
211  }
212 
213  public static function ‪getConsoleCommandApplication(ContainerInterface $container): Console\CommandApplication
214  {
216  $container->get(Context\Context::class),
217  $container->get(Console\CommandRegistry::class),
218  $container->get(SymfonyEventDispatcher::class),
219  $container->get(Configuration\ConfigurationManager::class),
220  $container->get(Core\BootService::class),
221  $container->get(Localization\LanguageServiceFactory::class)
222  );
223  }
224 
225  public static function ‪getConsoleCommandRegistry(ContainerInterface $container): Console\CommandRegistry
226  {
227  return new ‪Console\CommandRegistry($container);
228  }
229 
230  public static function ‪getEventDispatcher(ContainerInterface $container): EventDispatcher\EventDispatcher
231  {
233  $container->get(EventDispatcher\ListenerProvider::class)
234  );
235  }
236 
237  public static function ‪getEventListenerProvider(ContainerInterface $container): EventDispatcher\ListenerProvider
238  {
239  return new ‪EventDispatcher\ListenerProvider($container);
240  }
241 
242  public static function ‪extendEventListenerProvider(
243  ContainerInterface $container,
244  EventDispatcher\ListenerProvider $listenerProvider
245  ): EventDispatcher\ListenerProvider {
246  $listenerProvider->addListener(
247  Package\Event\PackagesMayHaveChangedEvent::class,
248  Package\PackageManager::class,
249  'packagesMayHaveChanged'
250  );
251 
252  $cacheWarmers = [
253  Configuration\SiteConfiguration::class,
254  Http\MiddlewareStackResolver::class,
255  Imaging\IconRegistry::class,
256  Package\PackageManager::class,
257  ];
258  foreach ($cacheWarmers as $service) {
259  $listenerProvider->addListener(Cache\Event\CacheWarmupEvent::class, $service, 'warmupCaches');
260  }
261 
262  $listenerProvider->addListener(Cache\Event\CacheFlushEvent::class, Cache\CacheManager::class, 'handleCacheFlushEvent');
263 
264  return $listenerProvider;
265  }
266 
267  public static function ‪getContext(ContainerInterface $container): Context\Context
268  {
269  return new ‪Context\Context();
270  }
271 
272  public static function ‪getBootService(ContainerInterface $container): Core\BootService
273  {
274  if ($container->has('_early.boot-service')) {
275  return $container->get('_early.boot-service');
276  }
277  return new ‪Core\BootService(
278  $container->get(ContainerBuilder::class),
279  $container
280  );
281  }
282 
283  public static function ‪getPasswordHashFactory(ContainerInterface $container): Crypto\PasswordHashing\PasswordHashFactory
284  {
286  }
287 
288  public static function ‪getSchemaMigrator(ContainerInterface $container): Database\Schema\SchemaMigrator
289  {
290  return ‪self::new($container, Database\Schema\SchemaMigrator::class, [
291  $container->get(Database\ConnectionPool::class),
292  $container->get(Database\Schema\Parser\Parser::class),
293  new ‪DefaultTcaSchema(),
294  ]);
295  }
296 
297  public static function ‪getSchemaParser(ContainerInterface $container): Database\Schema\Parser\Parser
298  {
299  return ‪self::new($container, Database\Schema\Parser\Parser::class, [
300  new ‪Lexer(),
301  ]);
302  }
303 
304  public static function ‪getIconFactory(ContainerInterface $container): Imaging\IconFactory
305  {
306  return ‪self::new($container, Imaging\IconFactory::class, [
307  $container->get(EventDispatcherInterface::class),
308  $container->get(Imaging\IconRegistry::class),
309  $container,
310  ]);
311  }
312 
313  public static function ‪configureIconRegistry(ContainerInterface $container, ‪IconRegistry $iconRegistry): ‪IconRegistry
314  {
315  $cache = $container->get('cache.core');
316 
317  $cacheIdentifier = $container->get(Package\Cache\PackageDependentCacheIdentifier::class)->withPrefix('Icons')->toString();
318  $iconsFromPackages = $cache->require($cacheIdentifier);
319  if ($iconsFromPackages === false) {
320  $iconsFromPackages = $container->get('icons')->getArrayCopy();
321  $cache->set($cacheIdentifier, 'return ' . var_export($iconsFromPackages, true) . ';');
322  }
323 
324  foreach ($iconsFromPackages as $icon => $options) {
325  $provider = $options['provider'] ?? null;
326  unset($options['provider']);
327  $options ??= [];
328  if ($provider === null && ($options['source'] ?? false)) {
329  $provider = $iconRegistry->‪detectIconProvider($options['source']);
330  }
331  if ($provider === null) {
332  continue;
333  }
334  $iconRegistry->‪registerIcon($icon, $provider, $options);
335  }
336  return $iconRegistry;
337  }
338 
339  public static function ‪getIcons(ContainerInterface $container): \ArrayObject
340  {
341  return new \ArrayObject();
342  }
343 
344  public static function ‪getIconRegistry(ContainerInterface $container): Imaging\‪IconRegistry
345  {
346  return ‪self::new($container, Imaging\IconRegistry::class, [$container->get('cache.assets'), $container->get(Package\Cache\PackageDependentCacheIdentifier::class)->withPrefix('BackendIcons')->toString()]);
347  }
348 
349  public static function ‪getLanguageServiceFactory(ContainerInterface $container): Localization\LanguageServiceFactory
350  {
351  return ‪self::new($container, Localization\LanguageServiceFactory::class, [
352  $container->get(Localization\Locales::class),
353  $container->get(Localization\LocalizationFactory::class),
354  $container->get(Cache\CacheManager::class)->getCache('runtime'),
355  ]);
356  }
357 
358  public static function ‪getLanguageStore(ContainerInterface $container): Localization\LanguageStore
359  {
360  return ‪self::new($container, Localization\LanguageStore::class, [$container->get(PackageManager::class)]);
361  }
362 
363  public static function ‪getLocales(ContainerInterface $container): Localization\Locales
364  {
365  return ‪self::new($container, Localization\Locales::class);
366  }
367 
368  public static function ‪getLocalizationFactory(ContainerInterface $container): Localization\LocalizationFactory
369  {
370  return ‪self::new($container, Localization\LocalizationFactory::class, [
371  $container->get(Localization\LanguageStore::class),
372  $container->get(Cache\CacheManager::class),
373  ]);
374  }
375 
376  public static function ‪getMailTransportFactory(ContainerInterface $container): Mail\TransportFactory
377  {
378  return ‪self::new($container, Mail\TransportFactory::class, [
379  $container->get(SymfonyEventDispatcher::class),
380  $container->get(Log\LogManager::class),
381  ]);
382  }
383 
384  public static function ‪getFlashMessageService(ContainerInterface $container): Messaging\FlashMessageService
385  {
386  return ‪self::new($container, Messaging\FlashMessageService::class);
387  }
388 
389  public static function ‪getResponsePropagationMiddleware(ContainerInterface $container): Middleware\ResponsePropagation
390  {
391  return ‪self::new($container, Middleware\ResponsePropagation::class);
392  }
393 
394  public static function ‪getVerifyHostHeaderMiddleware(ContainerInterface $container): Middleware\VerifyHostHeader
395  {
396  return ‪self::new($container, Middleware\VerifyHostHeader::class, [
397  ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']['trustedHostsPattern'] ?? '',
398  ]);
399  }
400 
401  public static function ‪getFailsafePackageManager(ContainerInterface $container): Package\FailsafePackageManager
402  {
403  $packageManager = $container->get(Package\PackageManager::class);
404  if ($packageManager instanceof Package\FailsafePackageManager) {
405  return $packageManager;
406  }
407  throw new \RuntimeException('FailsafePackageManager can only be instantiated in failsafe (maintenance tool) mode.', 1586861816);
408  }
409 
410  public static function ‪getPackageDependentCacheIdentifier(ContainerInterface $container): Package\Cache\PackageDependentCacheIdentifier
411  {
412  return new ‪Package\Cache\PackageDependentCacheIdentifier($container->get(Package\PackageManager::class));
413  }
414 
415  public static function ‪getRegistry(ContainerInterface $container): ‪Registry
416  {
417  return ‪self::new($container, Registry::class);
418  }
419 
420  public static function ‪getFileIndexRepository(ContainerInterface $container): Resource\Index\FileIndexRepository
421  {
422  return ‪self::new($container, Resource\Index\FileIndexRepository::class, [
423  $container->get(EventDispatcherInterface::class),
424  ]);
425  }
426 
427  public static function ‪getMetaDataRepository(ContainerInterface $container): Resource\Index\MetaDataRepository
428  {
429  return ‪self::new($container, Resource\Index\MetaDataRepository::class, [
430  $container->get(EventDispatcherInterface::class),
431  ]);
432  }
433 
434  public static function ‪getDriverRegistry(ContainerInterface $container): Resource\Driver\DriverRegistry
435  {
436  return ‪self::new($container, Resource\Driver\DriverRegistry::class);
437  }
438 
439  public static function ‪getProcessedFileRepository(ContainerInterface $container): Resource\ProcessedFileRepository
440  {
441  return ‪self::new($container, Resource\ProcessedFileRepository::class, [
442  $container->get(ResourceFactory::class),
443  ]);
444  }
445 
446  public static function ‪getResourceFactory(ContainerInterface $container): Resource\‪ResourceFactory
447  {
448  return ‪self::new($container, Resource\ResourceFactory::class, [
449  $container->get(Resource\StorageRepository::class),
450  ]);
451  }
452 
453  public static function ‪getStorageRepository(ContainerInterface $container): Resource\StorageRepository
454  {
455  return ‪self::new($container, Resource\StorageRepository::class, [
456  $container->get(EventDispatcherInterface::class),
457  $container->get(Resource\Driver\DriverRegistry::class),
458  ]);
459  }
460 
461  public static function ‪getDependencyOrderingService(ContainerInterface $container): Service\DependencyOrderingService
462  {
463  return new Service\DependencyOrderingService();
464  }
465 
466  public static function ‪getFlexFormService(ContainerInterface $container): Service\FlexFormService
467  {
468  return ‪self::new($container, Service\FlexFormService::class);
469  }
470 
471  public static function ‪getOpcodeCacheService(ContainerInterface $container): Service\OpcodeCacheService
472  {
473  return ‪self::new($container, Service\OpcodeCacheService::class);
474  }
475 
476  public static function ‪getTypoScriptStringFactory(ContainerInterface $container): TypoScript\TypoScriptStringFactory
477  {
478  return new ‪TypoScript\TypoScriptStringFactory($container, new ‪LossyTokenizer());
479  }
480 
481  public static function ‪getTypoScriptService(ContainerInterface $container): TypoScript\TypoScriptService
482  {
483  return ‪self::new($container, TypoScript\TypoScriptService::class);
484  }
485 
486  public static function ‪getAstTraverser(ContainerInterface $container): TypoScript\AST\Traverser\AstTraverser
487  {
488  return ‪self::new($container, TypoScript\AST\Traverser\AstTraverser::class);
489  }
490 
491  public static function ‪getCommentAwareAstBuilder(ContainerInterface $container): TypoScript\AST\CommentAwareAstBuilder
492  {
493  return ‪self::new($container, TypoScript\AST\CommentAwareAstBuilder::class, [
494  $container->get(EventDispatcherInterface::class),
495  ]);
496  }
497 
498  public static function ‪getLosslessTokenizer(ContainerInterface $container): TypoScript\Tokenizer\LosslessTokenizer
499  {
500  return ‪self::new($container, TypoScript\Tokenizer\LosslessTokenizer::class);
501  }
502 
503  public static function ‪getBackendEntryPointResolver(ContainerInterface $container): Routing\BackendEntryPointResolver
504  {
505  return ‪self::new($container, Routing\BackendEntryPointResolver::class);
506  }
507 
508  public static function ‪getRequestContextFactory(ContainerInterface $container): Routing\RequestContextFactory
509  {
510  return ‪self::new($container, Routing\RequestContextFactory::class, [
511  $container->get(Routing\BackendEntryPointResolver::class),
512  ]);
513  }
514 
515  public static function ‪getFormProtectionFactory(ContainerInterface $container): FormProtection\FormProtectionFactory
516  {
517  return ‪self::new(
518  $container,
519  FormProtection\FormProtectionFactory::class,
520  [
521  $container->get(Messaging\FlashMessageService::class),
522  $container->get(Localization\LanguageServiceFactory::class),
523  $container->get(Registry::class),
524  $container->get(CacheManager::class)->getCache('runtime'),
525  ]
526  );
527  }
528 
529  public static function ‪getGuzzleClientFactory(ContainerInterface $container): Http\Client\GuzzleClientFactory
530  {
532  }
533 
534  public static function ‪getRequestFactory(ContainerInterface $container): Http\RequestFactory
535  {
536  return new ‪Http\RequestFactory(
537  $container->get(Http\Client\GuzzleClientFactory::class)
538  );
539  }
540 
541  public static function ‪getMiddlewareStackResolver(ContainerInterface $container): Http\MiddlewareStackResolver
542  {
544  $container,
545  $container->get(Service\DependencyOrderingService::class),
546  $container->get('cache.core'),
547  $container->get(Package\Cache\PackageDependentCacheIdentifier::class)->toString(),
548  );
549  }
550 
551  public static function ‪getMiddlewares(ContainerInterface $container): \ArrayObject
552  {
553  return new \ArrayObject();
554  }
555 
556  public static function ‪getContentSecurityPolicies(ContainerInterface $container): ‪Map
557  {
558  return new ‪Map();
559  }
560 
561  public static function ‪provideFallbackEventDispatcher(
562  ContainerInterface $container,
563  EventDispatcherInterface $eventDispatcher = null
564  ): EventDispatcherInterface {
565  // Provide a dummy / empty event dispatcher for the install tool when $eventDispatcher is null (that means when we run without symfony DI)
566  return $eventDispatcher ?? new ‪EventDispatcher\EventDispatcher(
567  new EventDispatcher\ListenerProvider($container)
568  );
569  }
570 
571  public static function ‪configureCommands(ContainerInterface $container, Console\CommandRegistry $commandRegistry): Console\CommandRegistry
572  {
573  $commandRegistry->addLazyCommand('list', Command\ListCommand::class, 'Lists commands');
574 
575  $commandRegistry->addLazyCommand('help', HelpCommand::class, 'Displays help for a command');
576 
577  $commandRegistry->addLazyCommand('cache:warmup', Command\CacheWarmupCommand::class, 'Cache warmup for all, system or, if implemented, frontend caches.');
578 
579  $commandRegistry->addLazyCommand('cache:flush', Command\CacheFlushCommand::class, 'Cache clearing for all, system or frontend caches.');
580 
581  $commandRegistry->addLazyCommand('dumpautoload', Command\DumpAutoloadCommand::class, 'Updates class loading information in non-composer mode.', ‪Environment::isComposerMode());
582  $commandRegistry->addLazyCommand('extensionmanager:extension:dumpclassloadinginformation', Command\DumpAutoloadCommand::class, null, ‪Environment::isComposerMode(), false, 'dumpautoload');
583  $commandRegistry->addLazyCommand('extension:dumpclassloadinginformation', Command\DumpAutoloadCommand::class, null, ‪Environment::isComposerMode(), false, 'dumpautoload');
584 
585  return $commandRegistry;
586  }
587 }
‪TYPO3\CMS\Core\Command\ListCommand
Definition: ListCommand.php:34
‪TYPO3\CMS\Core\ServiceProvider\getBootService
‪static getBootService(ContainerInterface $container)
Definition: ServiceProvider.php:272
‪TYPO3\CMS\Core\Crypto\PasswordHashing\PasswordHashFactory
Definition: PasswordHashFactory.php:27
‪TYPO3\CMS\Core\ServiceProvider\getBackendEntryPointResolver
‪static getBackendEntryPointResolver(ContainerInterface $container)
Definition: ServiceProvider.php:503
‪TYPO3\CMS\Core\Package\AbstractServiceProvider
Definition: AbstractServiceProvider.php:35
‪TYPO3\CMS\Core\Command\DumpAutoloadCommand
Definition: DumpAutoloadCommand.php:31
‪TYPO3\CMS\Core\ServiceProvider\getRequestContextFactory
‪static getRequestContextFactory(ContainerInterface $container)
Definition: ServiceProvider.php:508
‪TYPO3\CMS\Core\ServiceProvider\getHelpCommand
‪static getHelpCommand(ContainerInterface $container)
Definition: ServiceProvider.php:185
‪TYPO3\CMS\Core\Command\CacheWarmupCommand
Definition: CacheWarmupCommand.php:37
‪TYPO3\CMS\Core\ServiceProvider\configureCommands
‪static configureCommands(ContainerInterface $container, Console\CommandRegistry $commandRegistry)
Definition: ServiceProvider.php:571
‪TYPO3\CMS\Core\ServiceProvider\getCacheFlushCommand
‪static getCacheFlushCommand(ContainerInterface $container)
Definition: ServiceProvider.php:190
‪TYPO3\CMS\Core\ServiceProvider\getSchemaParser
‪static getSchemaParser(ContainerInterface $container)
Definition: ServiceProvider.php:297
‪TYPO3\CMS\Core\Command\CacheFlushCommand
Definition: CacheFlushCommand.php:35
‪TYPO3\CMS\Core\ServiceProvider\getFlexFormService
‪static getFlexFormService(ContainerInterface $container)
Definition: ServiceProvider.php:466
‪TYPO3\CMS\Core\ServiceProvider\getOpcodeCacheService
‪static getOpcodeCacheService(ContainerInterface $container)
Definition: ServiceProvider.php:471
‪TYPO3\CMS\Core\ServiceProvider\getMiddlewareStackResolver
‪static getMiddlewareStackResolver(ContainerInterface $container)
Definition: ServiceProvider.php:541
‪TYPO3\CMS\Core\ServiceProvider\getFailsafePackageManager
‪static getFailsafePackageManager(ContainerInterface $container)
Definition: ServiceProvider.php:401
‪TYPO3\CMS\Core\ServiceProvider\getPackageName
‪static getPackageName()
Definition: ServiceProvider.php:47
‪TYPO3\CMS\Core\Core\Environment\isComposerMode
‪static isComposerMode()
Definition: Environment.php:137
‪TYPO3\CMS\Core\Registry
Definition: Registry.php:33
‪TYPO3\CMS\Core\ServiceProvider\getTypoScriptStringFactory
‪static getTypoScriptStringFactory(ContainerInterface $container)
Definition: ServiceProvider.php:476
‪TYPO3\CMS\Core\Package\Cache\PackageDependentCacheIdentifier
Definition: PackageDependentCacheIdentifier.php:30
‪TYPO3\CMS\Core\Http\MiddlewareStackResolver
Definition: MiddlewareStackResolver.php:31
‪TYPO3\CMS\Core\ServiceProvider\getConsoleCommandRegistry
‪static getConsoleCommandRegistry(ContainerInterface $container)
Definition: ServiceProvider.php:225
‪TYPO3\CMS\Core\ServiceProvider\getAstTraverser
‪static getAstTraverser(ContainerInterface $container)
Definition: ServiceProvider.php:486
‪TYPO3\CMS\Core\Package\AbstractServiceProvider\new
‪static mixed new(ContainerInterface $container, string $className, array $constructorArguments=[])
Definition: AbstractServiceProvider.php:183
‪TYPO3\CMS\Core\ServiceProvider\getListCommand
‪static getListCommand(ContainerInterface $container)
Definition: ServiceProvider.php:177
‪TYPO3\CMS\Core\Http\Client\GuzzleClientFactory
Definition: GuzzleClientFactory.php:28
‪TYPO3\CMS\Core\Core\BootService
Definition: BootService.php:32
‪TYPO3\CMS\Core\ServiceProvider\getDependencyOrderingService
‪static getDependencyOrderingService(ContainerInterface $container)
Definition: ServiceProvider.php:461
‪TYPO3\CMS\Core\Context\Context
Definition: Context.php:55
‪TYPO3\CMS\Core\ServiceProvider\configureIconRegistry
‪static configureIconRegistry(ContainerInterface $container, IconRegistry $iconRegistry)
Definition: ServiceProvider.php:313
‪TYPO3\CMS\Core\Console\CommandApplication
Definition: CommandApplication.php:42
‪TYPO3\CMS\Core\Core\Environment\getConfigPath
‪static getConfigPath()
Definition: Environment.php:212
‪TYPO3\CMS\Core\ServiceProvider\getDriverRegistry
‪static getDriverRegistry(ContainerInterface $container)
Definition: ServiceProvider.php:434
‪TYPO3\CMS\Core\Console\CommandRegistry
Definition: CommandRegistry.php:31
‪TYPO3\CMS\Core\ServiceProvider\getSiteConfiguration
‪static getSiteConfiguration(ContainerInterface $container)
Definition: ServiceProvider.php:168
‪TYPO3\CMS\Core\ServiceProvider\getProcessedFileRepository
‪static getProcessedFileRepository(ContainerInterface $container)
Definition: ServiceProvider.php:439
‪TYPO3\CMS\Core\ServiceProvider\getDumpAutoloadCommand
‪static getDumpAutoloadCommand(ContainerInterface $container)
Definition: ServiceProvider.php:208
‪TYPO3\CMS\Core\Database\Schema\DefaultTcaSchema
Definition: DefaultTcaSchema.php:40
‪TYPO3\CMS\Core\ServiceProvider\getSymfonyEventDispatcher
‪static getSymfonyEventDispatcher(ContainerInterface $container)
Definition: ServiceProvider.php:123
‪TYPO3\CMS\Core\ServiceProvider\getPasswordHashFactory
‪static getPasswordHashFactory(ContainerInterface $container)
Definition: ServiceProvider.php:283
‪TYPO3\CMS\Core\ServiceProvider\getContentSecurityPolicies
‪static getContentSecurityPolicies(ContainerInterface $container)
Definition: ServiceProvider.php:556
‪TYPO3\CMS\Core\ServiceProvider\getEventDispatcher
‪static getEventDispatcher(ContainerInterface $container)
Definition: ServiceProvider.php:230
‪TYPO3\CMS\Core\ServiceProvider\getResponsePropagationMiddleware
‪static getResponsePropagationMiddleware(ContainerInterface $container)
Definition: ServiceProvider.php:389
‪TYPO3\CMS\Core\ServiceProvider\getIconFactory
‪static getIconFactory(ContainerInterface $container)
Definition: ServiceProvider.php:304
‪TYPO3\CMS\Core\ServiceProvider\getIcons
‪static getIcons(ContainerInterface $container)
Definition: ServiceProvider.php:339
‪TYPO3\CMS\Core\EventDispatcher\EventDispatcher
Definition: EventDispatcher.php:30
‪TYPO3\CMS\Core\ServiceProvider\getIconRegistry
‪static getIconRegistry(ContainerInterface $container)
Definition: ServiceProvider.php:344
‪TYPO3\CMS\Core\ServiceProvider\getLocales
‪static getLocales(ContainerInterface $container)
Definition: ServiceProvider.php:363
‪TYPO3\CMS\Core\ServiceProvider\getStorageRepository
‪static getStorageRepository(ContainerInterface $container)
Definition: ServiceProvider.php:453
‪TYPO3\CMS\Core\ServiceProvider
Definition: ServiceProvider.php:41
‪TYPO3\CMS\Core\Resource\ResourceFactory
Definition: ResourceFactory.php:41
‪TYPO3\CMS\Core\ServiceProvider\getRegistry
‪static getRegistry(ContainerInterface $container)
Definition: ServiceProvider.php:415
‪TYPO3\CMS\Core\ServiceProvider\getCacheManager
‪static getCacheManager(ContainerInterface $container)
Definition: ServiceProvider.php:130
‪TYPO3\CMS\Core\Imaging\IconRegistry\registerIcon
‪registerIcon($identifier, $iconProviderClassName, array $options=[])
Definition: IconRegistry.php:332
‪TYPO3\CMS\Core\ServiceProvider\getMailTransportFactory
‪static getMailTransportFactory(ContainerInterface $container)
Definition: ServiceProvider.php:376
‪TYPO3\CMS\Core\Imaging\IconRegistry
Definition: IconRegistry.php:32
‪TYPO3\CMS\Core\Cache\CacheManager
Definition: CacheManager.php:36
‪TYPO3\CMS\Core\ServiceProvider\getConsoleCommandApplication
‪static getConsoleCommandApplication(ContainerInterface $container)
Definition: ServiceProvider.php:213
‪TYPO3\CMS\Core
‪TYPO3\CMS\Core\ServiceProvider\getFlashMessageService
‪static getFlashMessageService(ContainerInterface $container)
Definition: ServiceProvider.php:384
‪TYPO3\CMS\Core\ServiceProvider\getFactories
‪getFactories()
Definition: ServiceProvider.php:52
‪TYPO3\CMS\Core\ServiceProvider\getConnectionPool
‪static getConnectionPool(ContainerInterface $container)
Definition: ServiceProvider.php:154
‪TYPO3\CMS\Core\ServiceProvider\getPackagePath
‪static getPackagePath()
Definition: ServiceProvider.php:42
‪TYPO3\CMS\Core\Http\RequestFactory
Definition: RequestFactory.php:30
‪TYPO3\CMS\Core\ServiceProvider\getCharsetConverter
‪static getCharsetConverter(ContainerInterface $container)
Definition: ServiceProvider.php:163
‪TYPO3\CMS\Core\Adapter\EventDispatcherAdapter
Definition: EventDispatcherAdapter.php:24
‪TYPO3\CMS\Core\ServiceProvider\getCacheWarmupCommand
‪static getCacheWarmupCommand(ContainerInterface $container)
Definition: ServiceProvider.php:198
‪TYPO3\CMS\Core\ServiceProvider\getMiddlewares
‪static getMiddlewares(ContainerInterface $container)
Definition: ServiceProvider.php:551
‪TYPO3\CMS\Core\ServiceProvider\getFormProtectionFactory
‪static getFormProtectionFactory(ContainerInterface $container)
Definition: ServiceProvider.php:515
‪TYPO3\CMS\Core\ServiceProvider\getPackageDependentCacheIdentifier
‪static getPackageDependentCacheIdentifier(ContainerInterface $container)
Definition: ServiceProvider.php:410
‪TYPO3\CMS\Core\ServiceProvider\provideFallbackEventDispatcher
‪static provideFallbackEventDispatcher(ContainerInterface $container, EventDispatcherInterface $eventDispatcher=null)
Definition: ServiceProvider.php:561
‪TYPO3\CMS\Core\ServiceProvider\getCommentAwareAstBuilder
‪static getCommentAwareAstBuilder(ContainerInterface $container)
Definition: ServiceProvider.php:491
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\ServiceProvider\getMetaDataRepository
‪static getMetaDataRepository(ContainerInterface $container)
Definition: ServiceProvider.php:427
‪TYPO3\CMS\Core\Core\Environment
Definition: Environment.php:41
‪TYPO3\CMS\Core\ServiceProvider\getLanguageStore
‪static getLanguageStore(ContainerInterface $container)
Definition: ServiceProvider.php:358
‪TYPO3\CMS\Core\ServiceProvider\getTypoScriptService
‪static getTypoScriptService(ContainerInterface $container)
Definition: ServiceProvider.php:481
‪TYPO3\CMS\Core\ServiceProvider\getResourceFactory
‪static getResourceFactory(ContainerInterface $container)
Definition: ServiceProvider.php:446
‪TYPO3\CMS\Core\ServiceProvider\getExtensions
‪getExtensions()
Definition: ServiceProvider.php:113
‪TYPO3\CMS\Core\ServiceProvider\getRequestFactory
‪static getRequestFactory(ContainerInterface $container)
Definition: ServiceProvider.php:534
‪TYPO3\CMS\Core\Database\ConnectionPool
Definition: ConnectionPool.php:51
‪TYPO3\CMS\Core\ServiceProvider\getEventListenerProvider
‪static getEventListenerProvider(ContainerInterface $container)
Definition: ServiceProvider.php:237
‪TYPO3\CMS\Core\Imaging\IconRegistry\detectIconProvider
‪string detectIconProvider($iconReference)
Definition: IconRegistry.php:549
‪TYPO3\CMS\Core\ServiceProvider\getLosslessTokenizer
‪static getLosslessTokenizer(ContainerInterface $container)
Definition: ServiceProvider.php:498
‪TYPO3\CMS\Core\Type\Map
Definition: Map.php:47
‪TYPO3\CMS\Core\ServiceProvider\extendEventListenerProvider
‪static extendEventListenerProvider(ContainerInterface $container, EventDispatcher\ListenerProvider $listenerProvider)
Definition: ServiceProvider.php:242
‪TYPO3\CMS\Core\TypoScript\TypoScriptStringFactory
Definition: TypoScriptStringFactory.php:37
‪TYPO3\CMS\Core\ServiceProvider\getLocalizationFactory
‪static getLocalizationFactory(ContainerInterface $container)
Definition: ServiceProvider.php:368
‪TYPO3\CMS\Core\EventDispatcher\ListenerProvider
Definition: ListenerProvider.php:30
‪TYPO3\CMS\Core\ServiceProvider\getVerifyHostHeaderMiddleware
‪static getVerifyHostHeaderMiddleware(ContainerInterface $container)
Definition: ServiceProvider.php:394
‪TYPO3\CMS\Core\TypoScript\Tokenizer\LossyTokenizer
Definition: LossyTokenizer.php:57
‪TYPO3\CMS\Core\ServiceProvider\getLanguageServiceFactory
‪static getLanguageServiceFactory(ContainerInterface $container)
Definition: ServiceProvider.php:349
‪TYPO3\CMS\Core\ServiceProvider\getSchemaMigrator
‪static getSchemaMigrator(ContainerInterface $container)
Definition: ServiceProvider.php:288
‪TYPO3\CMS\Core\ServiceProvider\getContext
‪static getContext(ContainerInterface $container)
Definition: ServiceProvider.php:267
‪TYPO3\CMS\Core\Database\Schema\Parser\Lexer
Definition: Lexer.php:26
‪TYPO3\CMS\Core\ServiceProvider\getGuzzleClientFactory
‪static getGuzzleClientFactory(ContainerInterface $container)
Definition: ServiceProvider.php:529
‪TYPO3\CMS\Core\ServiceProvider\getFileIndexRepository
‪static getFileIndexRepository(ContainerInterface $container)
Definition: ServiceProvider.php:420