mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
docs(agents): 重构技能文档,合并扩展模式到架构指南
- 删除独立的 ulthon-core-extend-pattern 技能文档 - 将扩展模式内容整合到 ulthon-base-app-architecture 架构指南 - 简化 AGENTS.md 中的架构说明,移除冗余内容 - 在架构指南中按角色(框架使用者/作者)分章节组织内容
This commit is contained in:
70
AGENTS.md
70
AGENTS.md
@@ -17,66 +17,25 @@
|
||||
- 表结构设计规范(必读):<https://doc.ulthon.com/read/augushong/ulthon_admin/619efc9d7af62/zh-cn/2.x.html>
|
||||
- 项目文档主页:<https://doc.ulthon.com/read/augushong/ulthon_admin/home/zh-cn/2.x.html>
|
||||
|
||||
### 代码分层(3 层)
|
||||
### 代码分层铁律(不可协商)
|
||||
|
||||
- ThinkPHP 层:框架本身;通过 Provider 机制可以替换/扩展 ThinkPHP 的行为(配置通常在 `app/provider.php`,例如绑定核心类实现、注册中间件等)
|
||||
- ulthon\_admin 层:框架内核与默认实现,主要位于 `extend/base/`(\*Base)与 `extend/think/`(对 ThinkPHP 行为的适配/替换)
|
||||
- App 层:业务代码与系统唯一调用入口,位于 `app/`(包含:用于覆盖框架默认实现的入口类;以及:业务自行新增的普通类)
|
||||
框架采用 Base/App 双层架构。根据当前任务的开发者身份,遵守对应约束:
|
||||
|
||||
### 身份与职责(2 种)
|
||||
**所有身份通用**:
|
||||
- `extend/base/` 是框架内核(`*Base`),`app/` 是业务代码入口,目录路径一一对应
|
||||
|
||||
一句话讲清楚:
|
||||
**框架使用者(默认身份,除非明确说"修内核/改框架")**:
|
||||
- 严禁修改 `extend/base/` 下任何文件
|
||||
- 所有开发只在 `app/` 目录进行;新写业务能力直接在 `app/` 下实现即可
|
||||
- 扩展内置能力时,只改 `app/` 下对应入口类(必要时 `extends` 对应 `*Base`),保持方法签名一致
|
||||
|
||||
- 框架作者:代码写在 `extend/base/`,但系统调用入口必须在 `app/`(保证使用者可在 `app/` 继承重写)
|
||||
- 框架使用者:内置能力要改就改 `app/` 的对应入口类;自己新增的业务代码直接写 `app/`,不需要关心 Base/App 双层机制
|
||||
|
||||
#### ulthon\_admin 框架作者(维护框架/内核)
|
||||
|
||||
- 新增通用能力:实现写到 `extend/base/`(必要时通过 Provider 机制扩展 ThinkPHP 行为)
|
||||
- 同时在 `app/` 下建立对应入口类(可为空类继承 Base),作为系统唯一调用入口
|
||||
- Base 内部引用模型/服务/控制器时,一律引用 `app/` 下的类(保证业务层扩展始终生效)
|
||||
- 静态文件/模板/配置支持分层加载:优先加载 `app/`,不存在时再回落到框架默认实现(例如 `app_file_path`)
|
||||
- Base层代码一般以 `*Base.php` 命名,放在 `extend/base/` 下
|
||||
- Base层代码和app层代码的文件路径和名称一般是对应的。
|
||||
**框架作者(仅当任务涉及 `extend/base/` 时)**:
|
||||
- 每新增一个 Base 类,必须同时在 `app/` 提供入口类(可为空类继承 Base)
|
||||
- Base 内部禁止直接引用/调用 `extend/base/` 下的类(含内部互调),必须引用 `app/` 下的入口类
|
||||
- 例外:`app/common.php` 引用 `extend/base/helper.php` 是全局辅助函数的唯一特许
|
||||
- 核心层维护原则:稳定性优先(保证向下兼容);通用性优先(不引入具体业务逻辑)
|
||||
|
||||
**Base 层文件分类**:
|
||||
|
||||
- `*Base.php`:控制器/模型/服务/命令基类(被 App 层继承)
|
||||
- `helper.php`:全局辅助函数(通过 app/common.php 引用)
|
||||
- `adminInitData/`:框架核心初始化数据(带 @internal-framework 注解标记)
|
||||
- `adminUpdateCodeData/`:框架版本更新代码(带 @internal-framework 注解标记)
|
||||
|
||||
#### 使用框架的开发者(做业务)
|
||||
|
||||
- 严禁修改 `extend/base/` 下任何文件
|
||||
- 业务逻辑一般放在 `app/` 下(优先 `app/admin/`)
|
||||
- 修改/扩展框架内置能力:只改 `app/` 下对应入口类(必要时 `extends` 对应 `*Base`);仍严禁直接改动 `extend/base/`
|
||||
- 新写业务能力:直接在 `app/` 下实现即可;不需要、也不应该在 `extend/base/` 新建任何 `*Base.php`
|
||||
- 公共代码放在 `app/common/`(工具类、基础类等)
|
||||
- 命令类特殊一些,放在 `app/common/command/`(不放在 `app/admin/command/`)
|
||||
- 重写规范:保持方法签名一致;可用 `parent::method()` 复用父类逻辑,或复制父类代码后自行实现
|
||||
- 其他无任何特殊要求,可以按照任意方式写代码,以上只是对base层作说明。但框架仍然规定了大量的开发规范,需要参考在线文档。
|
||||
- 尽量按框架的规范、内置规则、内置技能进行开发,避免违反框架的设计初衷。
|
||||
|
||||
### Base/App 双层机制调用红线(内核开发约束)
|
||||
|
||||
- `extend/base/` 为框架内核实现(`*Base`),仅作为 `app/` 的继承基类使用,不作为系统调用入口
|
||||
- 在实现通用能力/内核代码时,禁止直接引用或调用 `extend/base/` 下的类(包括 `extend/base/` 内部互相调用)
|
||||
- 模型/服务/控制器/命令的引用与调用必须指向 `app/` 下的对应入口类(保证覆盖/重写始终生效)
|
||||
- 例外:
|
||||
1. 允许在 `app/` 下类定义中使用 `extends` 继承对应 `*Base` 类
|
||||
2. `app/common.php` 中包含 `include App::getRootPath() . '/extend/base/helper.php';`,这是全局辅助函数文件的引用特例
|
||||
- `extend/base/helper.php` 仅包含**全局辅助函数**(非类),属于框架内核能力的一部分
|
||||
- 这些函数需要在整个应用范围内可用(如 `__url()`, `password()`, `sysconfig()`, `auth()`, `app_file_path()` 等)
|
||||
- 该引用为框架设计要求的合理例外,不影响 Base/App 双层机制原则
|
||||
|
||||
### Base/app 双层机制目录映射示例(常见)
|
||||
|
||||
- `extend/base/admin/controller/system/AdminBase.php` → `app/admin/controller/system/Admin.php`
|
||||
- `extend/base/admin/model/SystemAdminBase.php` → `app/admin/model/SystemAdmin.php`
|
||||
- `extend/base/common/service/SmsBase.php` → `app/common/service/Sms.php`
|
||||
- `extend/base/common/command/admin/role/AdminRoleCreateBase.php` → `app/common/command/admin/role/AdminRoleCreate.php`
|
||||
详细架构说明与操作流程:[ulthon-base-app-architecture](./.agents/skills/ulthon-base-app-architecture/SKILL.md)
|
||||
|
||||
### 其他规则
|
||||
|
||||
@@ -141,8 +100,7 @@
|
||||
|
||||
Skills 是“按场景调用的工作流说明”,统一以 `.agents/skills/*/SKILL.md` 为准;`.trae/skills/` 为 Trae 集成的镜像目录(内容保持同步)。
|
||||
|
||||
- 扩展内置能力(继承与重写):[ulthon-core-extend-pattern](./.agents/skills/ulthon-core-extend-pattern/SKILL.md)
|
||||
- Base/App 架构指南:[ulthon-base-app-architecture](./.agents/skills/ulthon-base-app-architecture/SKILL.md)
|
||||
- Base/App 架构与扩展指南(含身份分章节):[ulthon-base-app-architecture](./.agents/skills/ulthon-base-app-architecture/SKILL.md)
|
||||
- CLI 命令参考文档:[ulthon-cli-reference](./.agents/skills/ulthon-cli-reference/SKILL.md)
|
||||
- Scheme + CURD 工作流:[ulthon-scheme-curd-workflow](./.agents/skills/ulthon-scheme-curd-workflow/SKILL.md)
|
||||
- Scheme 定义指南:[ulthon-scheme-definition](./.agents/skills/ulthon-scheme-definition/SKILL.md)
|
||||
|
||||
Reference in New Issue
Block a user