/**
  * Create Object Manager
  *
  * @param array $sharedInstances
  * @return ObjectManager
  */
 public function create(array $sharedInstances = [])
 {
     if (!defined('MTF_BP')) {
         $basePath = str_replace('\\', '/', dirname(dirname(__DIR__)));
         define('MTF_BP', $basePath);
     }
     if (!defined('MTF_TESTS_PATH')) {
         define('MTF_TESTS_PATH', MTF_BP . '/tests/app/');
     }
     if (!defined('MTF_STATES_PATH')) {
         define('MTF_STATES_PATH', MTF_BP . '/lib/Mtf/App/State/');
     }
     $diConfig = new $this->configClassName();
     $systemConfig = new SystemConfig();
     $configuration = $systemConfig->getConfigParam();
     $diConfig->extend($configuration);
     $directories = isset($arguments[\Magento\Framework\App\Filesystem::PARAM_APP_DIRS]) ? $arguments[\Magento\Framework\App\Filesystem::PARAM_APP_DIRS] : array();
     $directoryList = new \Magento\Framework\App\Filesystem\DirectoryList(realpath(MTF_BP . '../../../../'), $directories);
     (new \Magento\Framework\Autoload\IncludePath())->addIncludePath(array($directoryList->getDir(\Magento\Framework\App\Filesystem::GENERATION_DIR)));
     $factory = new Factory($diConfig);
     $argInterpreter = $this->createArgumentInterpreter(new BooleanUtils());
     $argumentMapper = new \Magento\Framework\ObjectManager\Config\Mapper\Dom($argInterpreter);
     $sharedInstances['Magento\\Framework\\ObjectManager\\Config\\Mapper\\Dom'] = $argumentMapper;
     $objectManager = new $this->locatorClassName($factory, $diConfig, $sharedInstances);
     $factory->setObjectManager($objectManager);
     ObjectManager::setInstance($objectManager);
     self::configure($objectManager);
     return $objectManager;
 }
Beispiel #2
0
 /**
  * Invoke class method with prepared arguments
  *
  * @param object $object
  * @param string $method
  * @param array $arguments
  * @return mixed
  */
 public function invoke($object, $method, array $arguments = [])
 {
     return $this->_factory->invoke($object, $method, $arguments);
 }