value, $content, $extraData); } /** * 记录警告日志 * * @param string $content 日志内容 * @param array $extraData 额外数据 * @return DevLog */ public static function logWarning(string $content, array $extraData = []): DevLog { return self::log(DEV_LOG_TYPE::WARNING->value, $content, $extraData); } /** * 记录错误日志 * * @param string $content 日志内容 * @param array $extraData 额外数据 * @return DevLog */ public static function logError(string $content, array $extraData = []): DevLog { return self::log(DEV_LOG_TYPE::ERROR->value, $content, $extraData); } /** * 记录调试日志 * * @param string $content 日志内容 * @param array $extraData 额外数据 * @return DevLog */ public static function logDebug(string $content, array $extraData = []): DevLog { return self::log(DEV_LOG_TYPE::DEBUG->value, $content, $extraData); } /** * 获取开发配置 * * @param string $key 配置键 * @param mixed $default 默认值 * @return mixed */ public static function getConfig(string $key, $default = null) { $cacheKey = 'dev_config_' . $key; return Cache::remember($cacheKey, 3600, function () use ($key, $default) { $config = DevConfig::where('key', $key)->first(); return $config ? $config->value : $default; }); } /** * 设置开发配置 * * @param string $key 配置键 * @param mixed $value 配置值 * @param string $description 描述 * @return DevConfig */ public static function setConfig(string $key, $value, string $description = ''): DevConfig { $config = DevConfig::updateOrCreate( ['key' => $key], [ 'value' => $value, 'description' => $description, 'status' => 1, ] ); // 清除缓存 Cache::forget('dev_config_' . $key); return $config; } /** * 获取所有开发配置 * * @return \Illuminate\Database\Eloquent\Collection */ public static function getAllConfigs() { return DevConfig::all(); } /** * 获取系统信息 * * @return array */ public static function getSystemInfo(): array { return [ 'php_version' => PHP_VERSION, 'laravel_version' => app()->version(), 'server_software' => $_SERVER['SERVER_SOFTWARE'] ?? 'Unknown', 'server_os' => PHP_OS, 'database_connection' => config('database.default'), 'cache_driver' => config('cache.default'), 'session_driver' => config('session.driver'), 'queue_connection' => config('queue.default'), 'timezone' => config('app.timezone'), 'locale' => config('app.locale'), 'env' => config('app.env'), 'debug' => config('app.debug'), 'url' => config('app.url'), 'memory_limit' => ini_get('memory_limit'), 'max_execution_time' => ini_get('max_execution_time'), 'upload_max_filesize' => ini_get('upload_max_filesize'), 'post_max_size' => ini_get('post_max_size'), ]; } }