dbService = $dbService; $this->envService = $envService; $this->reqService = $reqService; } /** * Display a listing of the resource. */ public function index() { return view('installer::index-start'); } /** * Check the database connection */ public function dbtest(Request $request) { $status = 'success'; # success|warn|danger $message = 'Database connection looks good!'; try { $this->dbService->checkDbConnection( $request->input('db_conn'), $request->input('db_host'), $request->input('db_port'), $request->input('db_name'), $request->input('db_user'), $request->input('db_pass') ); } catch (\Exception $e) { $status = 'danger'; $message = 'Failed! ' . $e->getMessage(); } return view('installer::flash/message', [ 'status' => $status, 'message' => $message, ]); } /** * Step 1. Check the modules and permissions */ public function step1(Request $request) { $passed = true; $php_version = $this->reqService->checkPHPVersion(); if($php_version['passed'] === false) { $passed = false; } $extensions = $this->reqService->checkExtensions(); foreach ($extensions as $ext) { if($ext['passed'] === false) { $passed = false; } } return view('installer::steps/step1-requirements', [ 'php' => $php_version, 'extensions' => $extensions, 'passed' => $passed, ]); } /** * Step 2. Database Setup */ public function step2(Request $request) { $db_types = ['mysql' => 'mysql', 'sqlite' => 'sqlite']; return view('installer::steps/step2-db', [ 'db_types' => $db_types, ]); } /** * Step 2a. Create the .env */ public function envsetup(Request $request) { Log::info('ENV setup', $request->toArray()); $this->envService->createEnvFile( $request->input('db_conn'), $request->input('db_host'), $request->input('db_port'), $request->input('db_name'), $request->input('db_user'), $request->input('db_pass') ); # Needs to redirect so it can load the new .env Log::info('Redirecting to database setup'); return redirect(route('installer.dbsetup')); } /** * Step 2b. Setup the database */ public function dbsetup(Request $request) { $log = []; $log[] = 'Creating database'; $console_out = $this->dbService->setupDB($request->input('db_conn')); return view('installer::steps/step2a-completed', [ 'console_output' => $console_out ]); //return redirect('/'); } /** * Step 3. Setup the admin user and initial settings */ public function step3(Request $request) { } public function complete(Request $request) { return redirect('/'); } }