/** * {@inheritdoc} */ public function renderText($path, array $arguments = []) { if ($this->container['minion.useTwig']) { return $this->container['twig']->render($path, $arguments); } else { return Utils::renderPhpTemplate(Utils::fixPath($this->container->getRootDir() . '/src/' . $path), $arguments); } }
/** * @internal * * Handle errors and exceptions thrown by entire application. * * @param \Exception $ex Any exception * @param integer $code HTTP status code * * @return Response Response to the client with nice error page */ public function minionError(\Exception $ex, $code) { $handler = new ExceptionHandler($this['debug']); $exception = FlattenException::create($ex); $response = Response::create($handler->getHtml($exception), $code, $exception->getHeaders())->setCharset(\ini_get('default_charset')); if ($this['debug']) { return $response; } else { $content = <<<'HTML' <!DOCTYPE html> <html> <head><title>Error %d</title></head> <body><h1>Error %d occured</h1></body> </html> HTML; if ($this['minion.useTwig']) { $twig = $this['twig']; $tpl = "Static/{$code}.html.twig"; if (!Utils::templateExists($twig, $tpl)) { $content = \str_replace('%d', $code, $content); } else { $content = $twig->render($tpl, ['exception' => $ex]); } } elseif (\file_exists($tpl = Utils::fixPath($this->getRootDir() . "/Static/{$code}.html.php"))) { $content = Utils::renderPhpTemplate($tpl, ['exception' => $ex]); } $response->setStatusCode($code); $response->setContent($content); return $response; } }