/** * {@inheritdoc} */ protected function generateDefaultTemplates(Webspace $webspace) { $expected = ['page', 'home']; foreach ($this->xpath->query('/x:webspace/x:default-templates/x:default-template') as $node) { /* @var \DOMNode $node */ $template = $node->nodeValue; $type = $node->attributes->getNamedItem('type')->nodeValue; $webspace->addDefaultTemplate($type, $template); if ($type === 'homepage') { $webspace->addDefaultTemplate('home', $template); } } $found = array_keys($webspace->getDefaultTemplates()); foreach ($expected as $item) { if (!in_array($item, $found)) { throw new ExpectedDefaultTemplatesNotFound($this->webspace->getKey(), $expected, $found); } } return $webspace; }