Neos\Flow\Core\Booting\Scripts::initializeConfiguration PHP Method

initializeConfiguration() public static method

Initializes the Configuration Manager, the Flow settings and the Environment service
public static initializeConfiguration ( Bootstrap $bootstrap ) : void
$bootstrap Neos\Flow\Core\Bootstrap
return void
    public static function initializeConfiguration(Bootstrap $bootstrap)
    {
        $context = $bootstrap->getContext();
        $packageManager = $bootstrap->getEarlyInstance(PackageManagerInterface::class);
        $configurationManager = new ConfigurationManager($context);
        $configurationManager->injectConfigurationSource(new YamlSource());
        $configurationManager->loadConfigurationCache();
        $configurationManager->setPackages($packageManager->getActivePackages());
        $settings = $configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_SETTINGS, 'Neos.Flow');
        $environment = new Environment($context);
        if (isset($settings['utility']['environment']['temporaryDirectoryBase'])) {
            $defaultTemporaryDirectoryBase = FLOW_PATH_DATA . '/Temporary';
            if (FLOW_PATH_TEMPORARY_BASE !== $defaultTemporaryDirectoryBase) {
                throw new FlowException(sprintf('It seems like the PHP default temporary base path has been changed from "%s" to "%s" via the FLOW_PATH_TEMPORARY_BASE environment variable. If that variable is present, the Neos.Flow.utility.environment.temporaryDirectoryBase setting must not be specified!', $defaultTemporaryDirectoryBase, FLOW_PATH_TEMPORARY_BASE), 1447707261);
            }
            $environment->setTemporaryDirectoryBase($settings['utility']['environment']['temporaryDirectoryBase']);
        } else {
            $environment->setTemporaryDirectoryBase(FLOW_PATH_TEMPORARY_BASE);
        }
        $configurationManager->setTemporaryDirectoryPath($environment->getPathToTemporaryDirectory());
        $lockManager = new LockManager($settings['utility']['lockStrategyClassName'], ['lockDirectory' => Files::concatenatePaths([$environment->getPathToTemporaryDirectory(), 'Lock'])]);
        Lock::setLockManager($lockManager);
        $packageManager->injectSettings($settings);
        $bootstrap->getSignalSlotDispatcher()->dispatch(ConfigurationManager::class, 'configurationManagerReady', [$configurationManager]);
        $bootstrap->setEarlyInstance(ConfigurationManager::class, $configurationManager);
        $bootstrap->setEarlyInstance(Environment::class, $environment);
    }