From b4ab6f0623322b566db5920f9b7515a0baec51df Mon Sep 17 00:00:00 2001 From: Nafies Luthfi Date: Sun, 10 Jun 2018 12:22:42 +0800 Subject: [PATCH] Add docblock on BackupsController class --- app/Http/Controllers/BackupsController.php | 71 +++++++++++++++++++++++------- 1 file changed, 56 insertions(+), 15 deletions(-) diff --git a/app/Http/Controllers/BackupsController.php b/app/Http/Controllers/BackupsController.php index c9fd634..02238ad 100644 --- a/app/Http/Controllers/BackupsController.php +++ b/app/Http/Controllers/BackupsController.php @@ -2,16 +2,26 @@ namespace App\Http\Controllers; -use App\Http\Controllers\Controller; -use App\Http\Requests\BackupUploadRequest; -use BackupManager\Filesystems\Destination; use BackupManager\Manager; use Illuminate\Http\Request; use League\Flysystem\FileExistsException; +use App\Http\Requests\BackupUploadRequest; +use BackupManager\Filesystems\Destination; use League\Flysystem\FileNotFoundException; +/** + * Database Backups Controller. + * + * @author Nafies Luthfi + */ class BackupsController extends Controller { + /** + * List of backup files. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\View\View + */ public function index(Request $request) { if (!file_exists(storage_path('app/backup/db'))) { @@ -20,18 +30,24 @@ class BackupsController extends Controller $backups = \File::allFiles(storage_path('app/backup/db')); // Sort files by modified time DESC - usort($backups, function($a, $b) { + usort($backups, function ($a, $b) { return -1 * strcmp($a->getMTime(), $b->getMTime()); }); } - return view('backups.index',compact('backups')); + return view('backups.index', compact('backups')); } + /** + * Create new backup file. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Routing\Redirector + */ public function store(Request $request) { $this->validate($request, [ - 'file_name' => 'nullable|max:30|regex:/^[\w._-]+$/' + 'file_name' => 'nullable|max:30|regex:/^[\w._-]+$/', ]); try { @@ -39,8 +55,8 @@ class BackupsController extends Controller $fileName = $request->get('file_name') ?: date('Y-m-d_Hi'); $manager->makeBackup()->run('mysql', [ - new Destination('local', 'backup/db/' . $fileName) - ], 'gzip'); + new Destination('local', 'backup/db/'.$fileName), + ], 'gzip'); return redirect()->route('backups.index'); } catch (FileExistsException $e) { @@ -48,38 +64,63 @@ class BackupsController extends Controller } } + /** + * Delete a backup file from storage. + * + * @param string $fileName + * @return \Illuminate\Routing\Redirector + */ public function destroy($fileName) { - if (file_exists(storage_path('app/backup/db/') . $fileName)) { - unlink(storage_path('app/backup/db/') . $fileName); + if (file_exists(storage_path('app/backup/db/').$fileName)) { + unlink(storage_path('app/backup/db/').$fileName); } + return redirect()->route('backups.index'); } + /** + * Download a backup file. + * + * @param string $fileName + * @return \Symfony\Component\HttpFoundation\BinaryFileResponse + */ public function download($fileName) { - return response()->download(storage_path('app/backup/db/') . $fileName); + return response()->download(storage_path('app/backup/db/').$fileName); } + /** + * Restore database from a backup file. + * + * @param string $fileName + * @return \Illuminate\Routing\Redirector + */ public function restore($fileName) { try { $manager = app()->make(Manager::class); - $manager->makeRestore()->run('local', 'backup/db/' . $fileName, 'mysql', 'gzip'); - } catch (FileNotFoundException $e) {} + $manager->makeRestore()->run('local', 'backup/db/'.$fileName, 'mysql', 'gzip'); + } catch (FileNotFoundException $e) { + } return redirect()->route('backups.index'); } + /** + * Upload a backup file to the storage. + * + * @param \App\Http\Requests\BackupUploadRequest $request + * @return \Illuminate\Routing\Redirector + */ public function upload(BackupUploadRequest $request) { $file = $request->file('backup_file'); - if (file_exists(storage_path('app/backup/db/') . $file->getClientOriginalName()) == false) { + if (file_exists(storage_path('app/backup/db/').$file->getClientOriginalName()) == false) { $file->storeAs('backup/db', $file->getClientOriginalName()); } return redirect()->route('backups.index'); } - }