diff --git a/app/Http/Middleware/SetLocaleInstaller.php b/app/Http/Middleware/SetLocaleInstaller.php index 7aeda58b..5c578791 100644 --- a/app/Http/Middleware/SetLocaleInstaller.php +++ b/app/Http/Middleware/SetLocaleInstaller.php @@ -5,6 +5,7 @@ namespace App\Http\Middleware; use Closure; use Illuminate\Http\Request; use Illuminate\Support\Facades\App; +use Beike\Installer\Helpers\EnvironmentManager; class SetLocaleInstaller { @@ -21,6 +22,8 @@ class SetLocaleInstaller $languageDir = base_path('beike/Installer/Lang'); $languages = array_values(array_diff(scandir($languageDir), array('..', '.'))); + (new EnvironmentManager)->getEnvContent(); + if ($locale && in_array($locale, $languages)) { App::setLocale($locale); } else { diff --git a/beike/Installer/Controllers/EnvironmentController.php b/beike/Installer/Controllers/EnvironmentController.php index f063c95d..0c0c535e 100644 --- a/beike/Installer/Controllers/EnvironmentController.php +++ b/beike/Installer/Controllers/EnvironmentController.php @@ -2,14 +2,13 @@ namespace Beike\Installer\Controllers; -use Exception; use Illuminate\Http\Request; use Illuminate\Routing\Controller; use Illuminate\Routing\Redirector; use Illuminate\Support\Facades\DB; +use Illuminate\Http\RedirectResponse; +use Illuminate\Support\Facades\Validator; use Beike\Installer\Helpers\EnvironmentManager; -use Illuminate\Support\Facades\Session; -use Validator; class EnvironmentController extends Controller { @@ -43,9 +42,9 @@ class EnvironmentController extends Controller * * @param Request $request * @param Redirector $redirect - * @return \Illuminate\Http\RedirectResponse + * @return RedirectResponse */ - public function saveWizard(Request $request, Redirector $redirect) + public function saveWizard(Request $request, Redirector $redirect): RedirectResponse { $rules = config('installer.environment.form.rules'); $messages = [ @@ -71,7 +70,14 @@ class EnvironmentController extends Controller return redirect(route('installer.database', $params)); } - public function validateDatabase(Request $request) + + /** + * 数据库信息检测 + * + * @param Request $request + * @return array + */ + public function validateDatabase(Request $request): array { $rules = config('installer.environment.form.rules'); $messages = [ @@ -102,7 +108,7 @@ class EnvironmentController extends Controller * @param Request $request * @return array|bool */ - private function checkDatabaseConnection(Request $request) + private function checkDatabaseConnection(Request $request): bool|array { $connection = $request->input('database_connection'); diff --git a/beike/Installer/Helpers/EnvironmentManager.php b/beike/Installer/Helpers/EnvironmentManager.php index 5ebc5568..2c7e72be 100644 --- a/beike/Installer/Helpers/EnvironmentManager.php +++ b/beike/Installer/Helpers/EnvironmentManager.php @@ -34,7 +34,7 @@ class EnvironmentManager */ public function getEnvContent() { - if (! file_exists($this->envPath)) { + if (!file_exists($this->envPath)) { if (file_exists($this->envExamplePath)) { copy($this->envExamplePath, $this->envPath); } else { @@ -95,36 +95,35 @@ class EnvironmentManager $results = trans('installer::installer_messages.environment.success'); $appUrl = $_SERVER['REQUEST_SCHEME'] . "://"; - if ($_SERVER["SERVER_PORT"] != "80") - { - $appUrl .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"] ; + if ($_SERVER["SERVER_PORT"] != "80") { + $appUrl .= $_SERVER["SERVER_NAME"] . ":" . $_SERVER["SERVER_PORT"]; } else { $appUrl .= $_SERVER["SERVER_NAME"]; } $envFileData = - 'APP_NAME=\''.$request->app_name."'\n". - 'APP_ENV='.$request->environment."\n". - 'APP_KEY='.'base64:'.base64_encode(Str::random(32))."\n". - 'APP_DEBUG=false'."\n". - 'APP_LOG_LEVEL='.$request->app_log_level."\n". - 'APP_URL='.$appUrl."\n\n". - 'DB_CONNECTION='.$request->database_connection."\n". - 'DB_HOST='.$request->database_hostname."\n". - 'DB_PORT='.$request->database_port."\n". - 'DB_DATABASE='.$request->database_name."\n". - 'DB_USERNAME='.$request->database_username."\n". - 'DB_PASSWORD='.$request->database_password."\n\n". - 'BROADCAST_DRIVER=log'."\n". - 'CACHE_DRIVER=file'."\n". - 'SESSION_DRIVER=file'."\n". - 'QUEUE_DRIVER=sync'."\n\n". - 'MAIL_DRIVER='.$request->mail_driver."\n". - 'MAIL_HOST='.$request->mail_host."\n". - 'MAIL_PORT='.$request->mail_port."\n". - 'MAIL_USERNAME='.$request->mail_username."\n". - 'MAIL_PASSWORD='.$request->mail_password."\n". - 'MAIL_ENCRYPTION='.$request->mail_encryption."\n\n"; + 'APP_NAME=\'' . ($request->app_name ?: 'BeikeShop') . "'\n" . + 'APP_ENV=' . $request->environment . "\n" . + 'APP_KEY=' . 'base64:' . base64_encode(Str::random(32)) . "\n" . + 'APP_DEBUG=false' . "\n" . + 'APP_LOG_LEVEL=' . $request->app_log_level . "\n" . + 'APP_URL=' . $appUrl . "\n\n" . + 'DB_CONNECTION=' . $request->database_connection . "\n" . + 'DB_HOST=' . $request->database_hostname . "\n" . + 'DB_PORT=' . $request->database_port . "\n" . + 'DB_DATABASE=' . $request->database_name . "\n" . + 'DB_USERNAME=' . $request->database_username . "\n" . + 'DB_PASSWORD=' . $request->database_password . "\n\n" . + 'BROADCAST_DRIVER=log' . "\n" . + 'CACHE_DRIVER=file' . "\n" . + 'SESSION_DRIVER=file' . "\n" . + 'QUEUE_DRIVER=sync' . "\n\n" . + 'MAIL_DRIVER=' . $request->mail_driver . "\n" . + 'MAIL_HOST=' . $request->mail_host . "\n" . + 'MAIL_PORT=' . $request->mail_port . "\n" . + 'MAIL_USERNAME=' . $request->mail_username . "\n" . + 'MAIL_PASSWORD=' . $request->mail_password . "\n" . + 'MAIL_ENCRYPTION=' . $request->mail_encryption . "\n\n"; try { file_put_contents($this->envPath, $envFileData);