getDiConfig(), $arguments['shared_instances'], $arguments ); } /** * Returns initialized compiled config * * @return \Magento\Framework\Interception\ObjectManager\ConfigInterface */ public function getDiConfig() { if (!$this->config) { $this->config = new \Magento\Framework\Interception\ObjectManager\Config\Compiled( $this->getConfigData() ); } return $this->config; } /** * Returns config data as array * * @return array */ protected function getConfigData() { return $this->getObjectManagerConfigLoader()->load(Area::AREA_GLOBAL); } /** * Returns new instance of compiled config loader * * @return \Magento\Framework\App\ObjectManager\ConfigLoader\Compiled */ public function getObjectManagerConfigLoader() { if ($this->configLoader) { return $this->configLoader; } $this->configLoader = new \Magento\Framework\App\ObjectManager\ConfigLoader\Compiled(); return $this->configLoader; } /** * {inheritdoc} */ public function configureObjectManager(ConfigInterface $diConfig, &$sharedInstances) { $objectManager = ObjectManager::getInstance(); $objectManager->configure( $objectManager ->get(\Magento\Framework\ObjectManager\ConfigLoaderInterface::class) ->load(Area::AREA_GLOBAL) ); $objectManager->get(\Magento\Framework\Config\ScopeInterface::class) ->setCurrentScope('global'); $diConfig->setInterceptionConfig( $objectManager->get(\Magento\Framework\Interception\Config\Config::class) ); $sharedInstances[\Magento\Framework\Interception\PluginList\PluginList::class] = $objectManager->create( \Magento\Framework\Interception\PluginListInterface::class, ['cache' => $objectManager->get(\Magento\Framework\App\Interception\Cache\CompiledConfig::class)] ); $objectManager ->get(\Magento\Framework\App\Cache\Manager::class) ->setEnabled([CompiledConfig::TYPE_IDENTIFIER], true); } }