/** * Executes a compiler plugin. * * Throws an exception in case an error occurred during compilation of the tag. * * @param string $pluginClassName Name of the compiler plugin class to execute * @param \Ableron\Core\Template\TemplateTag $templateTag The template tag to compile * @throws \Ableron\Core\Exception\SystemException * @return string */ private function executeCompilerPlugin($pluginClassName, TemplateTag $templateTag) { // execute closing tag if ($templateTag->isClosingTag()) { return $this->compileCompilerPluginClosingTag($templateTag->getTagName()); } // compile opening tag return $this->compileCompilerPluginOpeningTag($this->getCompilerPlugin($pluginClassName, $templateTag)); }