mirror of https://gitee.com/karson/fastadmin.git
重构初始化安装的数据库配置处理
parent
d12f549396
commit
0fb49c1a9a
|
|
@ -214,22 +214,28 @@ class Install extends Command
|
||||||
$adminFile = ROOT_PATH . 'public' . DS . 'admin.php';
|
$adminFile = ROOT_PATH . 'public' . DS . 'admin.php';
|
||||||
|
|
||||||
// 数据库配置文件
|
// 数据库配置文件
|
||||||
$dbConfigFile = APP_PATH . 'database.php';
|
// 数据库配置文件
|
||||||
$dbConfigText = @file_get_contents($dbConfigFile);
|
$envSampleFile = ROOT_PATH . '.env.sample';
|
||||||
|
$envFile = ROOT_PATH . '.env';
|
||||||
|
if (!file_exists($envFile)) {
|
||||||
|
if (!copy($envSampleFile, $envFile)) {
|
||||||
|
throw new Exception(__('Failed to copy %s to %s', '.env.sample', '.env'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$envText = @file_get_contents($envFile);
|
||||||
|
|
||||||
$callback = function ($matches) use ($mysqlHostname, $mysqlHostport, $mysqlUsername, $mysqlPassword, $mysqlDatabase, $mysqlPrefix) {
|
$callback = function ($matches) use ($mysqlHostname, $mysqlHostport, $mysqlUsername, $mysqlPassword, $mysqlDatabase, $mysqlPrefix) {
|
||||||
$field = "mysql" . ucfirst($matches[1]);
|
$field = "mysql" . ucfirst($matches[1]);
|
||||||
$replace = $$field;
|
$replace = $$field;
|
||||||
if ($matches[1] == 'hostport' && $mysqlHostport == 3306) {
|
return "{$matches[1]} = {$replace}";
|
||||||
$replace = '';
|
|
||||||
}
|
|
||||||
return "'{$matches[1]}'{$matches[2]}=>{$matches[3]}Env::get('database.{$matches[1]}', '{$replace}'),";
|
|
||||||
};
|
};
|
||||||
$dbConfigText = preg_replace_callback("/'(hostname|database|username|password|hostport|prefix)'(\s+)=>(\s+)Env::get\((.*)\)\,/", $callback, $dbConfigText);
|
$envText = preg_replace_callback("/(hostname|database|username|password|hostport|prefix)\s*=\s*(.*)/", $callback, $envText);
|
||||||
|
|
||||||
// 检测能否成功写入数据库配置
|
// 检测能否成功写入数据库配置
|
||||||
$result = @file_put_contents($dbConfigFile, $dbConfigText);
|
$result = @file_put_contents($envFile, $envText);
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
throw new Exception(__('The current permissions are insufficient to write the file %s', 'application/database.php'));
|
throw new Exception(__('The current permissions are insufficient to write the file %s', '.env'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 设置新的Token随机密钥key
|
// 设置新的Token随机密钥key
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue