/** * Initializes the Reflection Service * * @param Bootstrap $bootstrap * @return void */ public static function initializeReflectionService(Bootstrap $bootstrap) { $cacheManager = $bootstrap->getEarlyInstance(CacheManager::class); $configurationManager = $bootstrap->getEarlyInstance(ConfigurationManager::class); $settings = $configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_SETTINGS, 'TYPO3.Flow'); $reflectionService = new ReflectionService(); $reflectionService->injectSystemLogger($bootstrap->getEarlyInstance(SystemLoggerInterface::class)); $reflectionService->injectClassLoader($bootstrap->getEarlyInstance(ClassLoader::class)); $reflectionService->injectSettings($settings); $reflectionService->injectPackageManager($bootstrap->getEarlyInstance(PackageManagerInterface::class)); $reflectionService->setStatusCache($cacheManager->getCache('Flow_Reflection_Status')); $reflectionService->setReflectionDataCompiletimeCache($cacheManager->getCache('Flow_Reflection_CompiletimeData')); $reflectionService->setReflectionDataRuntimeCache($cacheManager->getCache('Flow_Reflection_RuntimeData')); $reflectionService->setClassSchemataRuntimeCache($cacheManager->getCache('Flow_Reflection_RuntimeClassSchemata')); $reflectionService->injectSettings($configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_SETTINGS, 'TYPO3.Flow')); $reflectionService->injectEnvironment($bootstrap->getEarlyInstance(Environment::class)); $bootstrap->setEarlyInstance(ReflectionService::class, $reflectionService); $bootstrap->getObjectManager()->setInstance(ReflectionService::class, $reflectionService); }