envManager = $envManager; } /** * 显示环境管理页面 */ public function index() { return view('env.index'); } /** * 获取所有项目列表 */ public function getProjects(): JsonResponse { try { $projects = $this->envManager->getProjects(); return response()->json([ 'success' => true, 'data' => $projects ]); } catch (\Exception $e) { return response()->json([ 'success' => false, 'message' => $e->getMessage() ], 500); } } /** * 获取项目的环境配置列表 */ public function getEnvs(string $project): JsonResponse { try { $envs = $this->envManager->getProjectEnvs($project); return response()->json([ 'success' => true, 'data' => $envs ]); } catch (\Exception $e) { return response()->json([ 'success' => false, 'message' => $e->getMessage() ], 500); } } /** * 获取环境配置文件内容 */ public function getEnvContent(string $project, string $env): JsonResponse { try { $content = $this->envManager->getEnvContent($project, $env); return response()->json([ 'success' => true, 'data' => [ 'content' => $content ] ]); } catch (\Exception $e) { return response()->json([ 'success' => false, 'message' => $e->getMessage() ], 404); } } /** * 保存环境配置文件 */ public function saveEnv(Request $request): JsonResponse { try { $success = $this->envManager->saveEnv( $request->input('project'), $request->input('env'), $request->input('content') ); if ($success) { return response()->json([ 'success' => true, 'message' => '环境配置保存成功' ]); } else { return response()->json([ 'success' => false, 'message' => '环境配置保存失败' ], 500); } } catch (\Exception $e) { return response()->json([ 'success' => false, 'message' => $e->getMessage() ], 500); } } /** * 应用环境配置到项目 */ public function applyEnv(Request $request): JsonResponse { try { $success = $this->envManager->applyEnv( $request->input('project'), $request->input('env') ); if ($success) { return response()->json([ 'success' => true, 'message' => '环境配置应用成功' ]); } else { return response()->json([ 'success' => false, 'message' => '环境配置应用失败' ], 500); } } catch (\Exception $e) { return response()->json([ 'success' => false, 'message' => $e->getMessage() ], 500); } } /** * 从项目导入环境配置 */ public function importEnv(Request $request): JsonResponse { try { $success = $this->envManager->importFromProject( $request->input('project'), $request->input('env') ); if ($success) { return response()->json([ 'success' => true, 'message' => '环境配置导入成功' ]); } else { return response()->json([ 'success' => false, 'message' => '环境配置导入失败' ], 500); } } catch (\Exception $e) { return response()->json([ 'success' => false, 'message' => $e->getMessage() ], 500); } } /** * 删除环境配置 */ public function deleteEnv(string $project, string $env): JsonResponse { try { $success = $this->envManager->deleteEnv($project, $env); if ($success) { return response()->json([ 'success' => true, 'message' => '环境配置删除成功' ]); } else { return response()->json([ 'success' => false, 'message' => '环境配置删除失败' ], 500); } } catch (\Exception $e) { return response()->json([ 'success' => false, 'message' => $e->getMessage() ], 500); } } /** * 获取项目当前.env文件内容 */ public function getCurrentEnv(string $project): JsonResponse { try { $content = $this->envManager->getCurrentProjectEnv($project); if ($content === null) { return response()->json([ 'success' => false, 'message' => '项目没有.env文件' ], 404); } return response()->json([ 'success' => true, 'data' => [ 'content' => $content ] ]); } catch (\Exception $e) { return response()->json([ 'success' => false, 'message' => $e->getMessage() ], 500); } } /** * 创建新的环境配置文件 */ public function createEnv(Request $request): JsonResponse { try { $success = $this->envManager->createNewEnv( $request->input('project'), $request->input('env_name') ); if ($success) { return response()->json([ 'success' => true, 'message' => '环境配置文件创建成功' ]); } else { return response()->json([ 'success' => false, 'message' => '环境配置文件创建失败' ], 500); } } catch (\Exception $e) { return response()->json([ 'success' => false, 'message' => $e->getMessage() ], 400); } } }