info(sprintf("The following environment file is used: '%s'", $envFilePath)); if (file_exists($envFilePath)) { $env = Dotenv::parse(file_get_contents($envFilePath)); } else { $this->warn('The environment file does not exist. Creating a new one...'); $env = []; } $env[strtoupper($this->argument('key'))] = $this->argument('value'); file_put_contents($envFilePath, self::updateEnv($env)); $this->info('The environment file was successfully updated.'); return 0; } public static function updateEnv($data = []): string { if (!count($data)) { return PHP_EOL; } $lines = []; foreach ($data as $key => $value) { if (preg_match('/\s/', $value) || strpos($value, '=') !== false) { $value = '"' . $value . '"'; } $lines[] = sprintf('%s=%s', $key, $value); } return implode(PHP_EOL, $lines); } }