mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-08 11:02:48 +08:00
docs: 重构项目规则与技能文档结构并更新开发指南
This commit is contained in:
77
AGENTS.md
77
AGENTS.md
@@ -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`)跳过交互确认。
|
||||
|
||||
Reference in New Issue
Block a user