diff --git a/classes/App.php b/classes/App.php index 551a2fa..3d352b9 100644 --- a/classes/App.php +++ b/classes/App.php @@ -37,6 +37,8 @@ class App extends \Slim\App /** @var Container $container */ $container = $this->getContainer(); + $container['root_path'] = $this->getRootPath(); + // Config. $container['config'] = ConfigFactory::create($container); @@ -110,4 +112,17 @@ class App extends \Slim\App [$jsonController, 'json'] )->setName('json'); } + + /** + * @return string|null + */ + private function getRootPath(): ?string + { + // realpath() can return false but we prefer using null. + if ($rootPath = realpath(__DIR__ . '/../')) { + return $rootPath; + } + + return null; + } } diff --git a/classes/Controller/FrontController.php b/classes/Controller/FrontController.php index e091705..c8c4b45 100644 --- a/classes/Controller/FrontController.php +++ b/classes/Controller/FrontController.php @@ -285,7 +285,7 @@ class FrontController extends BaseController $response = $cspMiddleware->applyHeader($response); if ($this->config->debug) { - $renderer = new HtmlErrorRenderer(true); + $renderer = new HtmlErrorRenderer(true, null, null, $this->container->get('root_path')); $exception = $renderer->render($error); $response->getBody()->write($exception->getAsString()); diff --git a/classes/ErrorHandler.php b/classes/ErrorHandler.php index 4111da9..ec52bbc 100644 --- a/classes/ErrorHandler.php +++ b/classes/ErrorHandler.php @@ -23,7 +23,7 @@ class ErrorHandler if (class_exists(HtmlErrorRenderer::class)) { // If dev dependencies are loaded, we can use symfony/error-handler. - $renderer = new HtmlErrorRenderer(true); + $renderer = new HtmlErrorRenderer(true, null, null, dirname(__DIR__)); $exception = $renderer->render($e); http_response_code($exception->getStatusCode());