diff options
author | Igor Scheller <igor.scheller@igorshp.de> | 2018-08-07 03:06:21 +0200 |
---|---|---|
committer | Igor Scheller <igor.scheller@igorshp.de> | 2018-08-14 00:17:19 +0200 |
commit | 92c26718fd0799660515d64feabbbc1cd1d71a35 (patch) | |
tree | 6574a53688e1981aa524ef32ee203f2c6836d968 /src/Exceptions | |
parent | 864a086900b92233d7cf76747828163346eabc77 (diff) |
exceptions: implemented error rendering return
Diffstat (limited to 'src/Exceptions')
-rw-r--r-- | src/Exceptions/Handler.php | 15 | ||||
-rw-r--r-- | src/Exceptions/Handlers/Whoops.php | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/src/Exceptions/Handler.php b/src/Exceptions/Handler.php index ee15717a..0503b5b7 100644 --- a/src/Exceptions/Handler.php +++ b/src/Exceptions/Handler.php @@ -54,8 +54,10 @@ class Handler /** * @param Throwable $e + * @param bool $return + * @return string */ - public function exceptionHandler($e) + public function exceptionHandler($e, $return = false) { if (!$this->request instanceof Request) { $this->request = new Request(); @@ -63,8 +65,19 @@ class Handler $handler = $this->handler[$this->environment]; $handler->report($e); + ob_start(); $handler->render($this->request, $e); + + if ($return) { + $output = ob_get_contents(); + ob_end_clean(); + return $output; + } + + http_response_code(500); + ob_end_flush(); $this->die(); + return ''; } /** diff --git a/src/Exceptions/Handlers/Whoops.php b/src/Exceptions/Handlers/Whoops.php index 73352105..630aca1d 100644 --- a/src/Exceptions/Handlers/Whoops.php +++ b/src/Exceptions/Handlers/Whoops.php @@ -34,6 +34,8 @@ class Whoops extends Legacy implements HandlerInterface $whoops = $this->app->make(WhoopsRunner::class); $handler = $this->getPrettyPageHandler($e); $whoops->pushHandler($handler); + $whoops->writeToOutput(false); + $whoops->allowQuit(false); if ($request->isXmlHttpRequest()) { $handler = $this->getJsonResponseHandler(); |