optimizer = new Optimizer; } public function getRenderer(Rendering $rendering) { return new XSLTRenderer($this->getXSL($rendering)); } public function getXSL(Rendering $rendering) { $groupedTemplates = []; $prefixes = []; $templates = $rendering->getTemplates(); TemplateHelper::replaceHomogeneousTemplates($templates, 3); foreach ($templates as $tagName => $template) { $template = $this->optimizer->optimizeTemplate($template); $groupedTemplates[$template][] = $tagName; $pos = \strpos($tagName, ':'); if ($pos !== \false) $prefixes[\substr($tagName, 0, $pos)] = 1; } $xsl = 'getAllParameters() as $paramName => $paramValue) { $xsl .= ''; } foreach ($groupedTemplates as $template => $tagNames) { $xsl .= ''; } $xsl .= ''; return $xsl; } }