diff options
Diffstat (limited to 'src/Router/Middleware/ErrorHandler.php')
-rw-r--r-- | src/Router/Middleware/ErrorHandler.php | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/src/Router/Middleware/ErrorHandler.php b/src/Router/Middleware/ErrorHandler.php deleted file mode 100644 index 789c455..0000000 --- a/src/Router/Middleware/ErrorHandler.php +++ /dev/null @@ -1,54 +0,0 @@ -<?php - -namespace Jasny\Router\Middleware; - -use Psr\Http\Message\ServerRequestInterface; -use Psr\Http\Message\ResponseInterface; - -/** - * Handle error in following middlewares/app actions - */ -class ErrorHandler -{ - /** - * Run middleware action - * - * @param ServerRequestInterface $request - * @param ResponseInterface $response - * @param callback $next - * @return ResponseInterface - */ - public function __invoke(ServerRequestInterface $request, ResponseInterface $response, $next = null) - { - if ($next && !is_callable($next)) { - throw new \InvalidArgumentException("'next' should be a callback"); - } - - $error = false; - - try { - $response = $next ? call_user_func($next, $request, $response) : $response; - } catch(\Throwable $e) { - $error = true; - } catch(\Exception $e) { #This block can be removed when migrating to PHP7, because Throwable represents both Exception and Error - $error = true; - } - - return $error ? $this->handleError($response) : $response; - } - - /** - * Handle caught error - * - * @param ResponseInterface $response - * @return ResponseInterface - */ - protected function handleError($response) - { - $body = $response->getBody(); - $body->rewind(); - $body->write('Unexpected error'); - - return $response->withStatus(500, 'Internal Server Error')->withBody($body); - } -} |