v0.2测试
This commit is contained in:
@@ -10,44 +10,72 @@
|
||||
* 版权所有 © Sea Network Technology Studio
|
||||
*/
|
||||
|
||||
// 加载环境变量
|
||||
// 读取.env文件
|
||||
$envFile = __DIR__ . '/.env';
|
||||
if (file_exists($envFile)) {
|
||||
$lines = file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
||||
foreach ($lines as $line) {
|
||||
if (strpos(trim($line), '#') === 0) {
|
||||
continue;
|
||||
}
|
||||
if (strpos($line, '=') !== false) {
|
||||
list($key, $value) = explode('=', $line, 2);
|
||||
putenv(trim($key) . '=' . trim($value));
|
||||
}
|
||||
$config = [];
|
||||
|
||||
if (!file_exists($envFile)) {
|
||||
die('错误: 配置文件 .env 不存在,请复制 .env.example 并修改配置');
|
||||
}
|
||||
|
||||
$lines = file($envFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
||||
if ($lines === false) {
|
||||
die('错误: 无法读取配置文件 .env');
|
||||
}
|
||||
|
||||
foreach ($lines as $line) {
|
||||
$line = trim($line);
|
||||
// 跳过注释行
|
||||
if (strpos($line, '#') === 0 || empty($line)) {
|
||||
continue;
|
||||
}
|
||||
// 解析 KEY=VALUE
|
||||
if (strpos($line, '=') !== false) {
|
||||
$parts = explode('=', $line, 2);
|
||||
$key = trim($parts[0]);
|
||||
$value = trim($parts[1]);
|
||||
// 去除可能的引号
|
||||
$value = trim($value, '"\'');
|
||||
$config[$key] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
// 检查必要配置是否存在
|
||||
$requiredKeys = ['API_BASE_URL', 'API_TIMEOUT', 'JWT_STORAGE_KEY', 'USER_STORAGE_KEY', 'SITE_NAME', 'SESSION_TIMEOUT'];
|
||||
$missingKeys = [];
|
||||
|
||||
foreach ($requiredKeys as $key) {
|
||||
if (!isset($config[$key]) || $config[$key] === '') {
|
||||
$missingKeys[] = $key;
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($missingKeys)) {
|
||||
die('错误: 配置文件 .env 缺少必要配置项: ' . implode(', ', $missingKeys));
|
||||
}
|
||||
|
||||
// 定义常量
|
||||
define('API_BASE_URL', getenv('API_BASE_URL') ?: 'http://localhost:8000');
|
||||
define('API_TIMEOUT', (int)(getenv('API_TIMEOUT') ?: 30));
|
||||
define('JWT_STORAGE_KEY', getenv('JWT_STORAGE_KEY') ?: 'class_system_token');
|
||||
define('USER_STORAGE_KEY', getenv('USER_STORAGE_KEY') ?: 'class_system_user');
|
||||
define('SITE_NAME', getenv('SITE_NAME') ?: '班级操行分管理系统');
|
||||
define('SESSION_TIMEOUT', (int)(getenv('SESSION_TIMEOUT') ?: 30));
|
||||
define('API_BASE_URL', '''');
|
||||
define('API_TIMEOUT', (int)$config['API_TIMEOUT']);
|
||||
define('JWT_STORAGE_KEY', $config['JWT_STORAGE_KEY']);
|
||||
define('USER_STORAGE_KEY', $config['USER_STORAGE_KEY']);
|
||||
define('SITE_NAME', $config['SITE_NAME']);
|
||||
define('SESSION_TIMEOUT', (int)$config['SESSION_TIMEOUT']);
|
||||
|
||||
// 会话配置
|
||||
ini_set('session.cookie_httponly', 1);
|
||||
ini_set('session.use_only_cookies', 1);
|
||||
ini_set('session.cookie_secure', 1);
|
||||
ini_set('session.cookie_samesite', 'Lax');
|
||||
ini_set('session.cookie_domain', '.sea-studio.top');
|
||||
ini_set('session.gc_maxlifetime', 7200);
|
||||
session_name('CLASS_SESSION');
|
||||
|
||||
session_start();
|
||||
|
||||
// 时区设置
|
||||
date_default_timezone_set('Asia/Shanghai');
|
||||
|
||||
// 错误报告(生产环境关闭)
|
||||
if (getenv('APP_ENV') === 'production') {
|
||||
error_reporting(0);
|
||||
ini_set('display_errors', 0);
|
||||
} else {
|
||||
error_reporting(E_ALL);
|
||||
ini_set('display_errors', 1);
|
||||
}
|
||||
?>
|
||||
// 生产环境关闭错误显示
|
||||
error_reporting(0);
|
||||
ini_set('display_errors', 0);
|
||||
Reference in New Issue
Block a user