Untitled
unknown
php
3 years ago
5.9 kB
7
Indexable
<?php namespace App\Http\Controllers; use App\Helpers\DatabaseManager; use App\Helpers\EnvironmentManager; use App\Helpers\InstalledFileManager; use App\Helpers\PermissionsChecker; use App\Helpers\RequirementsChecker; use App\Http\Requests\LaravelWebInstallerRequest; use Backup; use DB; use Illuminate\Support\Facades\Artisan; use Storage; class LaravelWebInstaller extends Controller { public function __construct(PermissionsChecker $checker, RequirementsChecker $checker2, EnvironmentManager $environmentManager, DatabaseManager $databaseManager) { $this->permissions = $checker; $this->requirements = $checker2; $this->environmentManager = $environmentManager; $this->databaseManager = $databaseManager; $this->middleware("canInstall")->except("installed"); } public function index() { if (file_exists("storage/installed")) { \File::copy("storage/installed", storage_path('installed')); } if (file_exists('public/uploads')) { $files = Storage::disk('public_uploads')->files(''); foreach ($files as $file) { if (file_exists("public/uploads/" . $file)) { \File::copy("public/uploads/" . $file, "uploads/" . $file); } } } Artisan::call('cache:clear'); Artisan::call('view:clear'); Artisan::call('config:clear'); $permissions = $this->permissions->check( config('installer.permissions') ); $requirements = $this->requirements->check( config('installer.requirements') ); $envConfig = $this->environmentManager->getEnvContent(); if ($permissions['errors'] == null || $requirements['errors'] == null) { return view('laravel_web_installer.laravel_web_installer', compact('envConfig', 'permissions', 'requirements')); } else { abort(404); } } private function check_status($code) { return true; } public function install(LaravelWebInstallerRequest $request, InstalledFileManager $fileManager) { $code = $request->purchase_code; $xx = $this->check_status($code); if ($xx != "1") { $response = [ 'status' => 'fail', 'errors' => ['purchase_code' => $xx], ]; } else { $response = [ 'status' => 'success', 'message' => "Verified Code", ]; } if ($response['status'] == 'success') { $message = $this->environmentManager->saveFile($request); // dd($message['status']); if ($message['status'] == 'success') { return redirect('migration'); } else { $msg = $message['message']; return redirect()->back()->with(['message' => $msg]); } } else { $p_code = $response['errors']; $msg = $p_code['purchase_code']; return redirect()->back()->with(['message' => $msg]); } } public function db_migration(InstalledFileManager $fileManager) { $database = $this->databaseManager->migrateAndSeed(); // dd($database['status']); if ($database['status'] == 'success') { $fileManager->update(); return view('laravel_web_installer.finished'); } else { abort(404); } } public function migration() { // count number of tables in database $tables = DB::select('SHOW TABLES'); // dd($tables[0]->total); //total number of tables if (sizeof($tables) > 0 && file_exists(storage_path('installed')) && file_get_contents(storage_path('installed')) == "") { Backup::export(); // existing database of fleet2 having tables | update fleet2 => fleet3 with old database records remains same return redirect('upgrade'); } if (sizeof($tables) > 0 && file_exists(storage_path('installed')) && (file_get_contents(storage_path('installed')) == "version3" || file_get_contents(storage_path('installed')) == "version3.1")) { Backup::export(); // existing database of fleet3 having tables | update fleet3 new features with old database records remains same return redirect('upgrade3'); } if (sizeof($tables) > 0 && file_exists(storage_path('installed')) && file_get_contents(storage_path('installed')) == "version4") { Backup::export(); // existing database of fleet4 having tables | update fleet4 => fleet4.0.1 with old database records remains same return redirect('upgrade4'); } if (sizeof($tables) > 0 && file_exists(storage_path('installed')) && file_get_contents(storage_path('installed')) == "version4.0.1") { Backup::export(); // existing database of fleet4 having tables | update fleet4 => fleet4.0.1 with old database records remains same return redirect('upgrade4.0.2'); } if (sizeof($tables) > 0 && file_exists(storage_path('installed')) && file_get_contents(storage_path('installed')) == "version4.0.2") { Backup::export(); // existing database of fleet4 having tables | update fleet4.0.2 => fleet4.0.3 with old database records remains same return redirect('upgrade4.0.3'); } if (sizeof($tables) == 0 && !file_exists(storage_path('installed'))) { // empty database/ new installation return redirect('migrate'); } else { return redirect()->back()->with(['message' => "Incorrect Database Name"]); } // return view('laravel_web_installer.migrate'); } }
Editor is loading...