isAbsolutePath($configPath)) { return $configPath; } $root = App::getRootPath(); return rtrim($root, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . ltrim($configPath, DIRECTORY_SEPARATOR); } public function readConfig($configPath) { if (!is_file($configPath)) { return [false, '配置文件不存在: ' . $configPath]; } $content = file_get_contents($configPath); $data = json_decode($content, true); if (!$data || !is_array($data)) { return [false, '配置文件JSON格式不正确: ' . $configPath]; } return [true, $data]; } public function resolvePath($path, $baseDir) { if ($this->isAbsolutePath($path)) { return $path; } return rtrim($baseDir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . ltrim($path, DIRECTORY_SEPARATOR); } public function isAbsolutePath($path) { if ($path === '' || $path === null) { return false; } if ($path[0] === '/' || $path[0] === '\\') { return true; } return preg_match('/^[a-zA-Z]:[\\\\\\/]/', $path) === 1; } }