/** * Loads a presenter, calls its method and returns the result. * * @param Template $template * @return string * @throws Exception */ protected function render(Template $template) { $presenter = $this->createPresenter($template->getPresenter()); try { $arguments = $this->getArguments($presenter, $template); $this->logger->debug($arguments); $result = call_user_func_array($presenter, $arguments); } catch (Exception $e) { if ($this->throwRenderExceptions) { throw $e; } $this->logger->error($e->getMessage() . "\n\nURL: " . URLUtils::fullUrl() . "\n\nTemplate:\n" . print_r($template, true) . (isset($arguments) ? "\n\n{$presenter} args:\n" . print_r($arguments, true) : '')); $result = ''; } return $result; }