loader = $loader; } protected abstract function GetTemplateName(); public function Render() { return $this->RenderTemplate($this->GetTemplateName(), $this); } protected abstract function PrepareContent(); public function RenderTemplate($templateName, $model) { $this->PrepareContent(); return new Markup($this->loader->GetTwigManager()->Render($templateName, $model), 'UTF-8'); } }