12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\App\ObjectManager\Environment;
- use Magento\Framework\App\EnvironmentInterface;
- use Magento\Framework\Interception\ObjectManager\ConfigInterface;
- use Magento\Framework\App\ObjectManager;
- use Magento\Framework\App\Area;
- class Developer extends AbstractEnvironment implements EnvironmentInterface
- {
- /**#@+
- * Mode name
- */
- const MODE = 'developer';
- /**#@- */
- /**#@- */
- protected $mode = self::MODE;
- /**
- * @var ConfigInterface
- */
- protected $config;
- /**
- * @var string
- */
- protected $configPreference = \Magento\Framework\ObjectManager\Factory\Dynamic\Developer::class;
- /**
- * Returns initialized di config entity
- *
- * @return ConfigInterface
- */
- public function getDiConfig()
- {
- if (!$this->config) {
- $this->config = new \Magento\Framework\Interception\ObjectManager\Config\Developer(
- $this->envFactory->getRelations(),
- $this->envFactory->getDefinitions()
- );
- }
- return $this->config;
- }
- /**
- * As developer environment does not have config loader, we return null
- *
- * @return null
- */
- public function getObjectManagerConfigLoader()
- {
- return null;
- }
- /**
- * {inheritdoc}
- */
- public function configureObjectManager(ConfigInterface $diConfig, &$sharedInstances)
- {
- $originalSharedInstances = $sharedInstances;
- $objectManager = ObjectManager::getInstance();
- $sharedInstances[\Magento\Framework\ObjectManager\ConfigLoaderInterface::class] = $objectManager
- ->get(\Magento\Framework\App\ObjectManager\ConfigLoader::class);
- $diConfig->setCache(
- $objectManager->get(\Magento\Framework\App\ObjectManager\ConfigCache::class)
- );
- $objectManager->configure(
- $objectManager
- ->get(\Magento\Framework\App\ObjectManager\ConfigLoader::class)
- ->load(Area::AREA_GLOBAL)
- );
- $objectManager->get(\Magento\Framework\Config\ScopeInterface::class)
- ->setCurrentScope('global');
- $diConfig->setInterceptionConfig(
- $objectManager->get(\Magento\Framework\Interception\Config\Config::class)
- );
- /** Reset the shared instances once interception config is set so classes can be intercepted if necessary */
- $sharedInstances = $originalSharedInstances;
- $sharedInstances[\Magento\Framework\ObjectManager\ConfigLoaderInterface::class] = $objectManager
- ->get(\Magento\Framework\App\ObjectManager\ConfigLoader::class);
- }
- }
|