/**
* Initializes the runtime Object Manager
*
* @param Bootstrap $bootstrap
* @return void
*/
public static function initializeObjectManager(Bootstrap $bootstrap)
{
$configurationManager = $bootstrap->getEarlyInstance(ConfigurationManager::class);
$objectConfigurationCache = $bootstrap->getEarlyInstance(CacheManager::class)->getCache('Flow_Object_Configuration');
$objectManager = new ObjectManager($bootstrap->getContext());
Bootstrap::$staticObjectManager = $objectManager;
$objectManager->injectAllSettings($configurationManager->getConfiguration(ConfigurationManager::CONFIGURATION_TYPE_SETTINGS));
$objectManager->setObjects($objectConfigurationCache->get('objects'));
foreach ($bootstrap->getEarlyInstances() as $objectName => $instance) {
$objectManager->setInstance($objectName, $instance);
}
$objectManager->get(Dispatcher::class)->injectObjectManager($objectManager);
Debugger::injectObjectManager($objectManager);
$bootstrap->setEarlyInstance(ObjectManagerInterface::class, $objectManager);
}