‪TYPO3CMS  10.4
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\Extbase;
19 
20 use Psr\Container\ContainerInterface;
25 
30 {
31  protected static function ‪getPackagePath(): string
32  {
33  return __DIR__ . '/../';
34  }
35 
36  public function ‪getFactories(): array
37  {
38  return [
39  Object\Container\Container::class => [ static::class, 'getObjectContainer' ],
40  Object\ObjectManager::class => [ static::class, 'getObjectManager' ],
41  SignalSlot\Dispatcher::class => [ static::class, 'getSignalSlotDispatcher' ],
42  Configuration\BackendConfigurationManager::class => [ static::class, 'getBackendConfigurationManager' ],
43  Configuration\ConfigurationManager::class => [ static::class, 'getConfigurationManager' ],
44  Reflection\ReflectionService::class => [ static::class, 'getReflectionService' ],
45  Service\EnvironmentService::class => [ static::class, 'getEnvironmentService' ],
46  Service\ExtensionService::class => [ static::class, 'getExtensionService' ],
47  Security\Cryptography\HashService::class => [ static::class, 'getHashService' ],
48  ];
49  }
50 
51  public static function ‪getObjectContainer(ContainerInterface $container): Object\Container\Container
52  {
53  return ‪self::new($container, Object\Container\Container::class, [$container]);
54  }
55 
56  public static function ‪getObjectManager(ContainerInterface $container): Object\ObjectManager
57  {
58  return ‪self::new($container, Object\ObjectManager::class, [$container, $container->get(Object\Container\Container::class)]);
59  }
60 
61  public static function ‪getSignalSlotDispatcher(ContainerInterface $container): SignalSlot\Dispatcher
62  {
63  $logger = $container->get(LogManager::class)->getLogger(SignalSlot\Dispatcher::class);
64  return ‪self::new($container, SignalSlot\Dispatcher::class, [$container->get(Object\ObjectManager::class), $logger]);
65  }
66 
67  public static function ‪getBackendConfigurationManager(ContainerInterface $container): Configuration\BackendConfigurationManager
68  {
69  return ‪self::new($container, Configuration\BackendConfigurationManager::class, [
70  $container->get(Object\ObjectManager::class),
71  $container->get(TypoScriptService::class),
72  $container->get(Service\EnvironmentService::class),
73  ]);
74  }
75 
76  public static function ‪getConfigurationManager(ContainerInterface $container): Configuration\ConfigurationManager
77  {
78  return ‪self::new($container, Configuration\ConfigurationManager::class, [
79  $container->get(Object\ObjectManager::class),
80  $container->get(Service\EnvironmentService::class),
81  ]);
82  }
83 
84  public static function ‪getReflectionService(ContainerInterface $container): Reflection\ReflectionService
85  {
86  return ‪self::new($container, Reflection\ReflectionService::class, [$container->get(CacheManager::class)]);
87  }
88 
89  public static function ‪getEnvironmentService(ContainerInterface $container): Service\EnvironmentService
90  {
91  return ‪self::new($container, Service\EnvironmentService::class);
92  }
93 
94  public static function ‪getExtensionService(ContainerInterface $container): Service\ExtensionService
95  {
96  $extensionService = ‪self::new($container, Service\ExtensionService::class);
97  $extensionService->injectConfigurationManager($container->get(Configuration\ConfigurationManager::class));
98  return $extensionService;
99  }
100 
101  public static function ‪getHashService(ContainerInterface $container): Security\Cryptography\HashService
102  {
103  return ‪self::new($container, Security\Cryptography\HashService::class);
104  }
105 }
‪TYPO3\CMS\Extbase\ServiceProvider\getObjectContainer
‪static getObjectContainer(ContainerInterface $container)
Definition: ServiceProvider.php:51
‪TYPO3\CMS\Core\Package\AbstractServiceProvider
Definition: AbstractServiceProvider.php:31
‪TYPO3\CMS\Extbase\ServiceProvider\getSignalSlotDispatcher
‪static getSignalSlotDispatcher(ContainerInterface $container)
Definition: ServiceProvider.php:61
‪TYPO3\CMS\Core\Package\AbstractServiceProvider\new
‪static mixed new(ContainerInterface $container, string $className, array $constructorArguments=[])
Definition: AbstractServiceProvider.php:116
‪TYPO3\CMS\Extbase\ServiceProvider\getPackagePath
‪static getPackagePath()
Definition: ServiceProvider.php:31
‪TYPO3\CMS\Extbase
‪TYPO3\CMS\Extbase\ServiceProvider\getObjectManager
‪static getObjectManager(ContainerInterface $container)
Definition: ServiceProvider.php:56
‪TYPO3\CMS\Extbase\ServiceProvider\getBackendConfigurationManager
‪static getBackendConfigurationManager(ContainerInterface $container)
Definition: ServiceProvider.php:67
‪TYPO3\CMS\Core\Cache\CacheManager
Definition: CacheManager.php:35
‪TYPO3\CMS\Extbase\ServiceProvider\getExtensionService
‪static getExtensionService(ContainerInterface $container)
Definition: ServiceProvider.php:94
‪TYPO3\CMS\Extbase\ServiceProvider\getFactories
‪getFactories()
Definition: ServiceProvider.php:36
‪TYPO3\CMS\Extbase\ServiceProvider\getConfigurationManager
‪static getConfigurationManager(ContainerInterface $container)
Definition: ServiceProvider.php:76
‪TYPO3\CMS\Extbase\ServiceProvider\getEnvironmentService
‪static getEnvironmentService(ContainerInterface $container)
Definition: ServiceProvider.php:89
‪TYPO3\CMS\Core\TypoScript\TypoScriptService
Definition: TypoScriptService.php:25
‪TYPO3\CMS\Extbase\ServiceProvider
Definition: ServiceProvider.php:30
‪TYPO3\CMS\Core\Log\LogManager
Definition: LogManager.php:30
‪TYPO3\CMS\Extbase\ServiceProvider\getReflectionService
‪static getReflectionService(ContainerInterface $container)
Definition: ServiceProvider.php:84
‪TYPO3\CMS\Extbase\ServiceProvider\getHashService
‪static getHashService(ContainerInterface $container)
Definition: ServiceProvider.php:101