/** * 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; }
/** * 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); }