ErrorHandler.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <?php
  2. namespace KarmaFW\App\Middlewares;
  3. use \KarmaFW\App\Request;
  4. use \KarmaFW\App\Response;
  5. use \KarmaFW\App\ResponseError;
  6. class ErrorHandler
  7. {
  8. public function __invoke(Request $request, Response $response, callable $next)
  9. {
  10. //set_error_handler(['ErrorHandler', 'display']);
  11. //set_exception_handler(['ExceptionHandler', 'display']);
  12. if (false) {
  13. $whoops = new \Whoops\Run;
  14. $whoops->prependHandler(new \Whoops\Handler\PrettyPageHandler);
  15. $whoops->register();
  16. }
  17. try {
  18. $response = $next($request, $response);
  19. } catch (\Throwable $e) {
  20. $content = null;
  21. if (ENV == 'dev') {
  22. $title = "ErrorHandler CATCHED EXCEPTION";
  23. $message = '<pre>' . print_r($e, true) . '</pre>';
  24. $content = '<title>' . $title . '</title><h1>' . $title . '</h1><p>' . $message . '</p>';
  25. }
  26. //throw $e;
  27. return new ResponseError(500, $content);
  28. }
  29. return $response;
  30. }
  31. }