docs: 重构项目规则与技能文档结构并更新开发指南

This commit is contained in:
augushong
2026-02-01 13:13:03 +08:00
parent 180d9291a3
commit 28267ff1c0
8 changed files with 272 additions and 107 deletions

View File

@@ -1,63 +1,26 @@
## Agent 工作约束Ulthon Admin
本仓库的开发规范以两类信息为准:
1. **规则(必须始终遵守)**:见 [.trae/rules/project_rules.md](./.trae/rules/project_rules.md) 与 [CODERULE.md](./CODERULE.md)。
2. **技能(按场景调用的工作流)**:见 `.trae/skills/*/SKILL.md`
在线文档参考https://doc.ulthon.com/read/augushong/ulthon_admin/home/zh-cn/2.x.html
## 不应该做的事情
1. 一般而言你不需要直接修改开发环境,除了安装composer依赖或其他开发相关资源。但你不应该自己安装docker、mysql、redis等基础环境这些由开发者提前维护
2. 一般而言你不需要修改环境配置文件(如 `.env`,这些由开发者提前维护好,如果你发现错误应当提示开发者完善相关配置。
3. 不需要自运行项目程序开发者会提前运行好,以便你直接在开发过程中调试
1. 一般不需要直接修改开发环境(除非安装 composer 依赖或开发相关资源)。不要自行安装 Docker、MySQL、Redis 等基础环境,这些由开发者维护。
2. 一般不需要修改环境配置文件(如 `.env`。发现配置缺失或错误时,应提示开发者完善相关配置。
3. 一般不需要自行启动或常驻运行项目程序开发者会提前运行以便调试);除非用户明确要求执行运行/调试命令
## 框架内置能力速查
## 需要遵守的规则
本段只保留入口与触发条件,细节以对应技能为准:
基本规则参考 [CODERULE.md](./CODERULE.md);
更多规则参考在线文档 https://doc.ulthon.com/read/augushong/ulthon_admin/home/zh-cn/2.x.html
- 扩展内置能力(不改 base[ulthon-core-extend-pattern](./.trae/skills/ulthon-core-extend-pattern/SKILL.md)
- Scheme + CURD 工作流:[ulthon-scheme-curd-workflow](./.trae/skills/ulthon-scheme-curd-workflow/SKILL.md)
- 数据库调试命令tools:db[ulthon-db-tools-debug](./.trae/skills/ulthon-db-tools-debug/SKILL.md)
- 页面 / 接口同体(同一控制器 HTML+JSON[ulthon-page-api-dual-mode](./.trae/skills/ulthon-page-api-dual-mode/SKILL.md)
- 登录认证Session + Token[ulthon-auth-session-token](./.trae/skills/ulthon-auth-session-token/SKILL.md)
## 框架工具
### 数据库操作
项目内置了数据库操作工具,可以直接在命令行中执行数据库操作。命令是:
```bash
php think tools:db:execute
php think tools:db:query
php think tools:db:table
php think tools:db:count
php think tools:db:info
php think tools:db:desc
```
通过 --help 可以查看每个命令的详细说明。
该功能的作用是快捷调试数据库的数据,不要通过这个方式设计表结构,(临时调试修改表结构等可以使用,但要注意还原,关于表结构设计有专门的方案规范)。
### 命令行交互
所有命令行工具均支持使用 `--force-force` (简写 `-ff`) 全局参数来跳过交互确认。
### 理解和设计表结构
项目内置SCHEME机制参考 [CODERULE.md](./CODEGUIDE.md)的 Scheme 机制 部分。通过scheme可以获得所有表结构也可以用于设计数据库结构。
### 开发流程
项目内置CURD机制基本流程在[CODERULE.md](./CODERULE.md)的 CURD 部分,详细说明需要查看在线文档。
### 页面接口同体机制
系统支持页面和接口同体,即同一个控制器方法既可以返回 HTML 页面,也可以返回 JSON 接口数据。
- **触发方式**在请求头Header中设置 `Accept` 包含 `application/json`
- **认证方式**:支持在 Header 中传入 `Authorization: Bearer tokenContent` 进行接口认证。
- **实现要求**:控制器方法必须调用 `$this->fetch()` 而非 `View::fetch()`
- **数据输出**
- 无论是 `$this->assign()` 还是 `View::assign()` 的数据都会被转换为 JSON。
- 如果不希望某个数据出现在 JSON 中,可以使用 `$this->assign('name', 'value', -1)`(第三个参数设为 -1
- **特殊处理**`index` 方法GET方式默认返回分页数据。若需获取 `assign` 的数据,需在 URL 中添加参数 `get_page_data=1`
- **生效范围**仅在控制器模式Controller Mode中生效路由模式Route Mode不生效。
### 登录认证机制
系统登录时会同时启用 **Session****Token** 机制。
- **Session 机制**:主要用于传统的浏览器环境,依赖 Cookie。
- **Token 机制**:专门为接口开发和无法使用 Cookie 的场景(如移动端、小程序、跨域请求等)设计。
- **使用方法**
- 登录成功后,接口会返回 `token` 数据。
- 前端在后续请求中,需将此 token 放入请求头:`Authorization: Bearer <token>`
- 系统会自动识别并完成身份认证。
命令行通用参数:多数命令支持 `--force-force``-ff`)跳过交互确认。