/** * @test */ public function configMergeTest() { $xml1 = new \SimpleXMLElement($this->_xml1); $xml2 = new \SimpleXMLElement($this->_xml2); \Magelight\Components\Loaders\Config::mergeConfig($xml1, $xml2); $this->assertEquals('override', (string) $xml1->test->file); }
/** * Get entities configuration * * @return mixed|\SimpleXMLElement */ public function getEntitiesConfig() { if (empty($this->entitiesConfig)) { $entitiesConfig = clone \Magelight\Config::getInstance()->getConfig('admin/scaffold/entities'); $this->defaultEntityConfig = clone $entitiesConfig->default; unset($entitiesConfig->default); foreach ($entitiesConfig->children() as $child) { /** @var $child \SimpleXMLElement */ /** @var $draft \SimpleXMLElement */ /** @var $fieldDraft \SimpleXMLElement */ $draft = clone $this->defaultEntityConfig; \Magelight\Components\Loaders\Config::mergeConfig($draft, $child); \Magelight\Components\Loaders\Config::mergeConfig($entitiesConfig->{$child->getName()}, $draft); $defaultFieldConfig = clone $entitiesConfig->{$child->getName()}->fields->default; unset($entitiesConfig->{$child->getName()}->fields->default); foreach ($entitiesConfig->{$child->getName()}->fields->children() as $field) { $fieldDraft = clone $defaultFieldConfig; \Magelight\Components\Loaders\Config::mergeConfig($fieldDraft, $field); \Magelight\Components\Loaders\Config::mergeConfig($entitiesConfig->{$child->getName()}->fields->{$field->getName()}, $fieldDraft); } } $this->entitiesConfig = $entitiesConfig; } return $this->entitiesConfig; }