From 4deb882d23e5dbd32ff20695ec9e12c457ddd993 Mon Sep 17 00:00:00 2001 From: Miguel Nogueira Date: Thu, 9 Jul 2020 09:07:49 +0100 Subject: [PATCH] Add check for null env and attempt to recover --- app/Console/Commands/Install.php | 2 -- app/Console/Commands/SetEnv.php | 22 +++++++++++++++++++++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/Console/Commands/Install.php b/app/Console/Commands/Install.php index 80b0e85..c393779 100644 --- a/app/Console/Commands/Install.php +++ b/app/Console/Commands/Install.php @@ -79,7 +79,6 @@ class Install extends Command $this->info('>> Configuring application - We\'re going to ask a few questions here!'); do { - $this->call('config:clear'); $this->info('== Database Settings (1/6) =='); $settings['DB_USERNAME'] = $this->ask('Database username'); @@ -116,7 +115,6 @@ class Install extends Command 'value' => $value ]); } - $this->call('config:cache'); $this->info('>> Saved configuration settings!'); $this->info('>> Preparing database...'); diff --git a/app/Console/Commands/SetEnv.php b/app/Console/Commands/SetEnv.php index b6fd0e9..f4ef7cc 100644 --- a/app/Console/Commands/SetEnv.php +++ b/app/Console/Commands/SetEnv.php @@ -42,18 +42,38 @@ class SetEnv extends Command $value = $this->argument('value'); $originalValue = env($key); + if (is_null($originalValue)) + { + // Attempt to silently fix issue + $this->callSilent('cache:clear'); + $originalValue = env($key); + + // Still fails? Let the user know + if (is_null($originalValue)) + { + $this->error('[!!] Cannot update requested configuration value! This is a known Laravel issue. If you report a bug, keep that in mind.'); + + return false; + } + } + if (file_exists($path)) { $file = file_get_contents($path); $newConfig = str_replace($key . '=' . $originalValue, $key . '=' . $value, $file); - file_put_contents( $path, $newConfig ); } + else + { + $this->error('Cannot update a file that doesn\'t exist! Please create .env first.'); + return false; + } + $this->info('>> Changed value! It may now be accessed via env() or config() if there\'s a file for it.'); }