This commit is contained in:
Edward Yang 2022-09-08 11:08:38 +08:00
parent a580ece7b3
commit 3fe4fc8e46
3 changed files with 41 additions and 33 deletions

View File

@ -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 {

View File

@ -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');

View File

@ -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);