80 lines
2.2 KiB
PHP
Executable File
80 lines
2.2 KiB
PHP
Executable File
<?php
|
|
namespace App\Core;
|
|
|
|
use Db\Database;
|
|
|
|
class SettingsHelper {
|
|
private static $settings = null;
|
|
|
|
/**
|
|
* 获取所有系统设置
|
|
*/
|
|
public static function getAll() {
|
|
if (self::$settings !== null) {
|
|
return self::$settings;
|
|
}
|
|
|
|
try {
|
|
$db = new Database();
|
|
|
|
// 尝试查询设置(如果表不存在会抛出异常,被catch捕获)
|
|
try {
|
|
$settings = $db->select('system_settings', ['setting_key', 'setting_value']);
|
|
} catch (\Exception $e) {
|
|
// 表不存在或其他错误,返回默认值
|
|
self::$settings = self::getDefaults();
|
|
return self::$settings;
|
|
}
|
|
$result = [];
|
|
|
|
foreach ($settings as $setting) {
|
|
$result[$setting['setting_key']] = $setting['setting_value'];
|
|
}
|
|
|
|
// 合并默认值
|
|
$defaults = self::getDefaults();
|
|
foreach ($defaults as $key => $value) {
|
|
if (!isset($result[$key])) {
|
|
$result[$key] = $value;
|
|
}
|
|
}
|
|
|
|
self::$settings = $result;
|
|
return $result;
|
|
} catch (\Exception $e) {
|
|
// 出错时返回默认值
|
|
return self::getDefaults();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 获取单个设置值
|
|
*/
|
|
public static function get($key, $default = '') {
|
|
$settings = self::getAll();
|
|
return isset($settings[$key]) ? $settings[$key] : $default;
|
|
}
|
|
|
|
/**
|
|
* 获取默认设置值
|
|
*/
|
|
private static function getDefaults() {
|
|
return [
|
|
'site_title' => 'PK10 Speed Racing',
|
|
'site_description' => 'PK10 Speed Racing - Online Betting Platform',
|
|
'site_keywords' => 'pk10, speed racing, betting, online game',
|
|
'site_logo' => '/Static/images/logo.png',
|
|
'site_favicon' => '/Static/css/favicon.ico',
|
|
'site_copyright' => '© 2025 PK10 Racing. All rights reserved.'
|
|
];
|
|
}
|
|
|
|
/**
|
|
* 清除缓存(当设置更新后调用)
|
|
*/
|
|
public static function clearCache() {
|
|
self::$settings = null;
|
|
}
|
|
}
|
|
|