# 任务：在 FlyEnv 中集成 FrankenPHP 模块

## 1. 背景与目标
我们需要在 FlyEnv 中集成 [FrankenPHP](https://github.com/php/frankenphp) 模块，以进一步增强本地开发环境的体验。
- 特性需求与讨论参考：https://github.com/xpf0000/FlyEnv/issues/642
- FrankenPHP 官方文档：https://frankenphp.dev/docs/classic/
- https://frankenphp.dev/docs/worker/
- https://frankenphp.dev/docs/migrate/
- https://frankenphp.dev/docs/config/
- FrankenPHP GitHub README：https://raw.githubusercontent.com/php/frankenphp/refs/heads/main/README.md

## 2. 执行阶段与交付物

本任务分为两个阶段。**必须在阶段一获得我的明确确认后，才能开始阶段二的编码。**

### 阶段一：技术调研与方案设计 (Design Phase)
1. **深入理解 FrankenPHP：** 读取并理解 FrankenPHP 的核心能力、依赖项以及其命令行工作方式。

2. **分析 FlyEnv 架构：** 分析 FlyEnv 现有的模块化工作流。并考虑FrankenPHP 模块如何集成
可参考:
  - CliProxyAPI 模块. 典型的FlyEnv服务模块. 包含版本管理,服务管理,配置文件初始化/读写,日志查看
  - Hermes 模块. 包含很多 NodePTY + XTerm 的工作流
  - DNS 模块. 基础的DNS功能

3. **输出《FrankenPHP 集成方案》：** 方案需包含以下内容：
  - **前端界面 (UI/UX)：** FrankenPHP 模块的入口、配置项及状态展示逻辑。
  - **后端逻辑 (Backend IPC/Services)：** FrankenPHP 进程的启停控制、健康检查以及与 FlyEnv 主进程的通信机制。
  - **用户执行逻辑：** 用户从安装、配置到启动该模块的完整交互链路。

### 阶段二：编码实现 (Implementation Phase)
*(⚠️ 阻断：必须等待我对《FrankenPHP 集成方案》回复“确认”后，方可执行本阶段)*
- 严格按照确认后的方案，实施 FrankenPHP 模块的前后端代码集成。

---

## 3. 任务执行原则（核心红线）

**请严格遵守以下开发纪律。这决定了你的代码是否会被采纳：**

### 3.1 编码前先思考
- **禁止猜测：** 遇到不确定的需求、API 或边缘场景，必须停下来问我。
- **提供选择：** 存在多种技术实现路径时，列出各选项的优缺点让我选，绝不要替我做架构决策。
- **主动推翻：** 如果你发现有比我预期更简单、更原生的方案，请主动提出来，该推翻就推翻。

### 3.2 简约至上 (KISS 原则)
- **拒绝镀金：** 没被明确要求的功能，坚决不写。
- **拒绝过度抽象：** 只在一个地方用到的代码，不要建抽象层。
- **拒绝伪需求：** 没人要求的「灵活性」和「可配置项」坚决不加。
- **拒绝防御性编程泛滥：** 不可能发生、或极其罕见的异常场景，不做复杂的错误处理。

### 3.3 精确编辑 (Surgical Edits)
- **最小作用域：** 只修改为了完成当前任务必须动的部分。
- **风格一致：** 严格匹配 FlyEnv 已有的代码和命名风格，哪怕你觉得自己有一套“更优雅”的写法。
- **管好手：** 看到项目中不相关的代码问题（如拼写错误、历史遗留格式），提一嘴即可，绝对不要在本次任务中顺手修改。**严禁使用git回滚代码**.
- **负责到底：** 如果你的改动导致某些旧代码变成了 Dead Code，你必须负责清理掉。但原来就存在且没人让你改的问题，不要碰。**严禁使用git回滚代码**.
