/** * Handle an error with Whoops * * @return string */ public function handle() { $whoops = new \Whoops\Run(); $whoops->pushHandler(new \Whoops\Handler\PlainTextHandler()); $whoops->pushHandler(new \Whoops\Handler\PrettyPageHandler()); $whoops->allowQuit(false); $whoops->writeToOutput(false); return $whoops->handleException($this->exception); }
/** * Render an exception using Whoops. * * @param \Exception $e * @return \Illuminate\Http\Response */ protected function renderExceptionWithWhoops($request, Exception $e) { if (config('app.debug')) { $whoops = new \Whoops\Run(); $whoops->pushHandler($request->ajax() ? new \Whoops\Handler\JsonResponseHandler() : new \Whoops\Handler\PrettyPageHandler()); $whoops->allowQuit(false); $whoops->writeToOutput(false); return response($whoops->handleException($e), $whoops->sendHttpCode()); } else { return renderHttpExceptionView($e); } }
/** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $e * @return \Illuminate\Http\Response */ public function render($request, Exception $e) { $debug = config("app.debug"); $debugbar = $debug && config("debugbar.enabled") !== false && !$request->ajax(); if (app()->environment('local')) { if ($request->ajax()) { $handler = new \Whoops\Handler\JsonResponseHandler(); } else { $handler = new \Whoops\Handler\PrettyPageHandler(); $handler->setEditor('sublime'); } $whoops = new \Whoops\Run(); $whoops->pushHandler($handler); $whoops->allowQuit(false); $whoops->writeToOutput(true); $status = 500; $headers = []; if ($e instanceof HttpExceptionInterface) { $status = $e->getStatusCode(); $headers = $e->getHeaders(); } $response = response($whoops->handleException($e), $status, $headers); } else { $response = parent::render($request, $e); } if ($debugbar) { $debugbar = app()->make('debugbar'); $debugbar->boot(); $debugbar->addException($e); $response = $debugbar->modifyResponse($request, $response); } if (Subdomens::is('api')) { $response = Api::addCORSHeaders($response); } return $response; }