/** * @param Zend\Di\DefinitionList|null $definitions * @param Magento_Di_InstanceManager|null $instanceManager * @param Zend\Di\Config|null $config * @param string|null $definitionsFile * @return Magento_Di_Zend */ public function __construct(Zend\Di\DefinitionList $definitions = null, Magento_Di_InstanceManager $instanceManager = null, Zend\Di\Config $config = null, $definitionsFile = null) { if (is_null($definitions)) { if (is_string($definitionsFile) && is_file($definitionsFile) && is_readable($definitionsFile)) { $definitionProvider = new Magento_Di_Definition_ArrayDefinition_Zend(unserialize(file_get_contents($definitionsFile))); } else { $definitionProvider = new Magento_Di_Definition_RuntimeDefinition_Zend(); } $definitions = new Magento_Di_DefinitionList_Zend($definitionProvider); } $instanceManager = $instanceManager ?: new Magento_Di_InstanceManager_Zend(); parent::__construct($definitions, $instanceManager, $config); $this->setInstanceManager($instanceManager); }