log_viewer = new LaravelLogViewer(); $this->request = app('request'); } /** * @return array|mixed * @throws \Exception */ public function index() { $folderFiles = []; if ($this->request->input('f')) { $this->log_viewer->setFolder($this->request->input('f')); $folderFiles = $this->log_viewer->getFolderFiles(true); } if ($this->request->input('l')) { $this->log_viewer->setFile($this->request->input('l')); } if ($early_return = $this->earlyReturn()) { return $early_return; } $data = [ 'logs' => $this->log_viewer->all(), 'folders' => $this->log_viewer->getFolders(), 'current_folder' => $this->log_viewer->getFolderName(), 'folder_files' => $folderFiles, 'files' => $this->log_viewer->getFiles(true), 'current_file' => $this->log_viewer->getFileName(), 'standardFormat' => true, ]; if ($this->request->wantsJson()) { return $data; } if (is_array($data['logs'])) { $firstLog = reset($data['logs']); if (!$firstLog['context'] && !$firstLog['level']) { $data['standardFormat'] = false; } } return view('developer.log', $data)->render(); } /** * @return bool|mixed * @throws \Exception */ private function earlyReturn() { if ($this->request->input('f')) { $this->log_viewer->setFolder($this->request->input('f')); } if ($this->request->input('dl')) { return $this->download($this->pathFromInput('dl')); } elseif ($this->request->has('clean')) { app('files')->put($this->pathFromInput('clean'), ''); return $this->redirect(Url::absoluteWeb('developer.log-viewer')); } elseif ($this->request->has('del')) { app('files')->delete($this->pathFromInput('del')); return $this->redirect(Url::absoluteWeb('developer.log-viewer')); } elseif ($this->request->has('delall')) { $files = ($this->log_viewer->getFolderName()) ? $this->log_viewer->getFolderFiles(true) : $this->log_viewer->getFiles(true); foreach ($files as $file) { app('files')->delete($this->log_viewer->pathToLogFile($file)); } return $this->redirect(Url::absoluteWeb('developer.log-viewer')); } return false; } /** * @param string $input_string * @return string * @throws \Exception */ private function pathFromInput($input_string) { return $this->log_viewer->pathToLogFile($this->request->input($input_string)); } /** * @param $to * @return mixed */ private function redirect($to) { if (function_exists('redirect')) { return redirect($to); } return app('redirect')->to($to); } /** * @param string $data * @return mixed */ private function download($data) { if (function_exists('response')) { return response()->download($data); } // For laravel 4.2 return app('\Illuminate\Support\Facades\Response')->download($data); } }