/** * Install theme via storage interface * @param Theme $theme * @return void */ public function install(Theme $theme) { $handler = $this->handlerClassName; foreach ($theme->getLayouts() as $layoutName => $layout) { foreach ($layout->getTemplateNames() as $templateName) { $html = $handler::processHtml($theme->buildLayoutWithTemplate($layoutName, $templateName)); $this->storage->save($theme, $layout, $templateName, $html); } } }