/** * Invokes custom PHP code directly after the package manager has been initialized. * * @param Bootstrap $bootstrap The current bootstrap * @return void */ public function boot(Bootstrap $bootstrap) { if (!file_exists(FLOW_PATH_DATA . 'Logs')) { Files::createDirectoryRecursively(FLOW_PATH_DATA . 'Logs'); } $monologFactory = LoggerFactory::getInstance(); $bootstrap->setEarlyInstance(LoggerFactory::class, $monologFactory); $dispatcher = $bootstrap->getSignalSlotDispatcher(); $dispatcher->connect('TYPO3\\Flow\\Core\\Booting\\Sequence', 'afterInvokeStep', function ($step) use($bootstrap, $dispatcher) { if ($step->getIdentifier() === 'typo3.flow:configuration') { /** @var ConfigurationManager $configurationManager */ $configurationManager = $bootstrap->getEarlyInstance(ConfigurationManager::class); $monologFactory = LoggerFactory::getInstance(); $loggerConfigurations = $configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_SETTINGS, 'Flowpack.Monolog'); $monologFactory->injectConfiguration($loggerConfigurations); } }); }
/** * Initializes the Reflection Service * * @param Bootstrap $bootstrap * @return void */ public static function initializeReflectionService(Bootstrap $bootstrap) { $cacheManager = $bootstrap->getEarlyInstance('TYPO3\\Flow\\Cache\\CacheManager'); $configurationManager = $bootstrap->getEarlyInstance('TYPO3\\Flow\\Configuration\\ConfigurationManager'); $settings = $configurationManager->getConfiguration(\TYPO3\Flow\Configuration\ConfigurationManager::CONFIGURATION_TYPE_SETTINGS, 'TYPO3.Flow'); $reflectionService = new \TYPO3\Flow\Reflection\ReflectionService(); $reflectionService->injectSystemLogger($bootstrap->getEarlyInstance('TYPO3\\Flow\\Log\\SystemLoggerInterface')); $reflectionService->injectClassLoader($bootstrap->getEarlyInstance('TYPO3\\Flow\\Core\\ClassLoader')); $reflectionService->injectSettings($settings); $reflectionService->injectPackageManager($bootstrap->getEarlyInstance('TYPO3\\Flow\\Package\\PackageManagerInterface')); $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(\TYPO3\Flow\Configuration\ConfigurationManager::CONFIGURATION_TYPE_SETTINGS, 'TYPO3.Flow')); $reflectionService->injectEnvironment($bootstrap->getEarlyInstance('TYPO3\\Flow\\Utility\\Environment')); $bootstrap->setEarlyInstance('TYPO3\\Flow\\Reflection\\ReflectionService', $reflectionService); $bootstrap->getObjectManager()->setInstance('TYPO3\\Flow\\Reflection\\ReflectionService', $reflectionService); }
/** * 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); }