private function getExceptionData($exception) { $data = []; $data['host'] = Request::server('HTTP_HOST'); $data['method'] = Request::method(); $data['fullUrl'] = Request::fullUrl(); if (php_sapi_name() === 'cli') { $data['host'] = parse_url(config('app.url'), PHP_URL_HOST); $data['method'] = 'CLI'; } $data['exception'] = $exception->getMessage(); $data['error'] = $exception->getTraceAsString(); $data['line'] = $exception->getLine(); $data['file'] = $exception->getFile(); $data['class'] = get_class($exception); $data['storage'] = array('SERVER' => Request::server(), 'GET' => Request::query(), 'POST' => $_POST, 'FILE' => Request::file(), 'OLD' => Request::hasSession() ? Request::old() : [], 'COOKIE' => Request::cookie(), 'SESSION' => Request::hasSession() ? Session::all() : [], 'HEADERS' => Request::header()); $data['storage'] = array_filter($data['storage']); $count = $this->config['count']; $data['exegutor'] = []; $data['file_lines'] = []; $file = new SplFileObject($data['file']); for ($i = -1 * abs($count); $i <= abs($count); $i++) { list($line, $exegutorLine) = $this->getLineInfo($file, $data['line'], $i); $data['exegutor'][] = $exegutorLine; $data['file_lines'][$data['line'] + $i] = $line; } // to make Symfony exception more readable if ($data['class'] == 'Symfony\\Component\\Debug\\Exception\\FatalErrorException') { preg_match("~^(.+)' in ~", $data['exception'], $matches); if (isset($matches[1])) { $data['exception'] = $matches[1]; } } return $data; }