diff --git a/.agents/rules/ulthon-database-design.md b/.agents/rules/ulthon-database-design.md index 440e902..6bcdab2 100644 --- a/.agents/rules/ulthon-database-design.md +++ b/.agents/rules/ulthon-database-design.md @@ -61,13 +61,13 @@ | `table` | 关联表名 | 必填 | | `primaryKey` | 关联表主键 | 非必填 | | `modelFilename` | 模型文件 | 非必填,不建议指定,可自动生成 | -| `onlyFileds` | 列表页显示字段 | 可指定,用竖线分割 | +| `onlyFileds` | 列表页显示字段 | 可指定,用竖线分割。**键名是 `onlyFileds`(而非 `onlyFields`),需与 `CurdBase.php` 解析逻辑一致** | | `relationBindSelect` | 表单下拉关联字段 | 必填 | 完整写法示例: ``` -标签 {relation} (table:tag,relationBindSelect:title,primaryKey:id,onlyFileds:title|titme_image|username|phone) +标签 {relation} (table:tag,relationBindSelect:title,primaryKey:id,onlyFileds:title|time_image|username|phone) ``` ## 其他细节 diff --git a/.agents/rules/ulthon-naming-convention.md b/.agents/rules/ulthon-naming-convention.md index 2a16bdb..18f52af 100644 --- a/.agents/rules/ulthon-naming-convention.md +++ b/.agents/rules/ulthon-naming-convention.md @@ -2,12 +2,16 @@ ## 目录命名 -- 一个单词的目录用小写,例如 `service/` -- 多个单词的目录用大驼峰,例如 `AdminService/`、`UserService/` +- 一个单词的目录用小写,例如 `service/`、`controller/` +- 多个单词的目录用大驼峰,例如独立的子项目目录 `AdminService/`、`UserService/` + - 此处的"多单词目录"指 **独立子项目目录**(如 `source/` 下各端工程、各子项目目录),**不**指框架标准应用目录 + - 框架标准应用目录(`app/admin/`、`app/common/` 等)按 ThinkPHP 惯例统一使用小写 +- **控制器子目录**:推荐使用全小写命名,例如 `app/admin/controller/system/`、`app/admin/controller/mall/` + - 即使目录名用了大驼峰,URL 也会自动转换,但默认全小写可避免歧义 + - URL 访问规则详见 [ulthon-controller-url.md](./ulthon-controller-url.md) ## PHP 文件命名 -- `app/common` 目录下已有单独的规范说明(见 `ulthon-source-directory.md`) -- 其他各应用目录下: - - **service 模块**需要写后缀,例如 `AdminService`,而不是 `admin` - - **除了 service 模块**,其他文件不需要写后缀,不论是 controller、model、traits、config、middleware 等 +- **service 模块**:文件名需要写 `Service` 后缀,例如 `AdminService.php`(类名 `AdminService`),而不是 `Admin.php` +- **其他模块**(controller、model、traits、config、middleware 等):不需要写后缀,直接使用业务名(如 `User.php`、`Order.php`) +- **Scheme 类**:文件名采用大驼峰(PascalCase),且必须与类名一致,详见 [ulthon-scheme-definition](../skills/ulthon-scheme-definition/SKILL.md) diff --git a/.agents/skills/ulthon-permission-cli/SKILL.md b/.agents/skills/ulthon-permission-cli/SKILL.md index 01e39e8..6d5d3f2 100644 --- a/.agents/skills/ulthon-permission-cli/SKILL.md +++ b/.agents/skills/ulthon-permission-cli/SKILL.md @@ -90,12 +90,12 @@ php think admin:permission:user --user-id=1 3. 如果用户通过角色获得权限,执行 `admin:role:permission:list --role-id=` 核对角色是否包含该节点。 4. 检查后台配置中是否存在免鉴权规则(例如 no_login/no_auth 的控制器/节点白名单)。 -## 变更说明(重要) +## 节点分配原则 -- 旧命令 `admin:permission:assign` / `admin:permission:revoke` 已移除。 -- “按用户直接增删节点”的需求,应通过“角色”承接: - - 只影响单个用户:创建专用角色 → 给该角色分配节点 → 将角色分配给该用户。 - - 影响一批用户:维护共享角色 → 给该角色增删节点 → 所有拥有该角色的用户一起生效。 +权限节点的增删统一通过"角色"承接,不直接对单个用户操作: + +- 只影响单个用户:创建专用角色 → 给该角色分配节点 → 将角色分配给该用户 +- 影响一批用户:维护共享角色 → 给该角色增删节点 → 所有拥有该角色的用户一起生效 ## 常见坑位 diff --git a/.agents/skills/ulthon-scheme-curd-workflow/SKILL.md b/.agents/skills/ulthon-scheme-curd-workflow/SKILL.md index 34592a6..a88e1de 100644 --- a/.agents/skills/ulthon-scheme-curd-workflow/SKILL.md +++ b/.agents/skills/ulthon-scheme-curd-workflow/SKILL.md @@ -15,7 +15,7 @@ description: "指导使用 Scheme 与 CURD 的标准开发流程。需要新增/ - CURD 生成前,Scheme 与数据库表结构必须完全一致,否则会被拒绝。 - 业务 Scheme 代码统一放在 `app/admin/scheme/`。 - 表结构设计遵循项目数据库规范:表名小写下划线、字段注释完整、避免 ENUM。 -- CURD 命令中的 `{table}` 参数应为**不含前缀的下划线**格式(例如:数据库表 `ul_user_profile` 对应的参数为 `user_profile`)。 +- CURD 命令中的 `{table}` 参数**推荐使用不含前缀的下划线**格式(例如:数据库表 `ul_user_profile` 对应参数 `user_profile`),与 `scheme:make` 输出保持一致;带前缀的表名也支持,但生成的代码中可能出现前缀,需手动核对。 - CURD 生成的页面脚本(`index.js` / `add.js` / `edit.js` / `read.js` / `_common.js`)默认与视图文件放在同一目录:`app/admin/view/<模块路径>/`,不提供“输出到其他 JS 目录”的配置项。 - 一旦你开始在生成代码上做业务改造,就应默认“正式目录不可被覆盖”,后续结构变更需要走“临时生成 + 按需合并”。 diff --git a/.agents/skills/ulthon-scheme-definition/SKILL.md b/.agents/skills/ulthon-scheme-definition/SKILL.md index 0daf561..222dc84 100644 --- a/.agents/skills/ulthon-scheme-definition/SKILL.md +++ b/.agents/skills/ulthon-scheme-definition/SKILL.md @@ -93,7 +93,7 @@ class YourClassName extends BaseScheme - `table`: 关联表名。 - `relationBindSelect`: 显示的字段名。 - `primaryKey`: 关联表主键(可选)。 - - `onlyFields`: 列表页显示的字段(可选,用 `|` 分隔)。 + - `onlyFileds`: 列表页显示的字段(可选,用 `|` 分隔)。**注意:键名是 `onlyFileds`(而非 `onlyFields`),需与 `extend/base/common/command/CurdBase.php` 解析逻辑保持一致;写错键名会导致列表字段配置静默失效。** - `table`: 表格选择器。`options` 需包含: - `table`: 关联表名。 - `type`: 选择模式 (`checkbox`/`radio`)。 diff --git a/AGENTS.md b/AGENTS.md index 0078782..3ca5f3c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -117,13 +117,16 @@ Skills 是"按场景调用的工作流说明",统一以 `.agents/skills/*/SKIL - Scheme 定义指南:[ulthon-scheme-definition](./.agents/skills/ulthon-scheme-definition/SKILL.md) - 数据库调试命令(tools:db):[ulthon-db-tools-debug](./.agents/skills/ulthon-db-tools-debug/SKILL.md) - HTTP 调用工具(tools:http:call):[ulthon-tools-http-call](./.agents/skills/ulthon-tools-http-call/SKILL.md) -- 日志命令(tools:log):[ulthon-tools-log](./.agents/skills/ulthon-tools-log/SKILL.md) - 内置定时器与定时任务扩展:[ulthon-timer](./.agents/skills/ulthon-timer/SKILL.md) - 页面 / 接口同体:[ulthon-page-api-dual-mode](./.agents/skills/ulthon-page-api-dual-mode/SKILL.md) - 登录认证(Session + Token):[ulthon-auth-session-token](./.agents/skills/ulthon-auth-session-token/SKILL.md) - 权限与角色管理(RBAC CLI):[ulthon-permission-cli](./.agents/skills/ulthon-permission-cli/SKILL.md) - 菜单管理(admin:menu:\* CLI):[ulthon-admin-menu-cli](./.agents/skills/ulthon-admin-menu-cli/SKILL.md) - 测试工作流(运行/编写/决策/回归保护):[ulthon-testing](./.agents/skills/ulthon-testing/SKILL.md) +- 框架更新工作流(admin:update 同步上游):[ulthon-update-workflow](./.agents/skills/ulthon-update-workflow/SKILL.md) +- 零散规则管理(新增/维护 `.agents/rules/`):[ulthon-rules-manager](./.agents/skills/ulthon-rules-manager/SKILL.md) + +> 日志查看走通用命令 `php think tools:log:show`,详见 [快速命令参考](#快速命令参考)。 ## 智能体指导 diff --git a/README.md b/README.md index 1f603f2..944f85f 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ php think admin:update * 官方网站:[http://admin.demo.ulthon.com](http://admin.demo.ulthon.com) -* 文档地址:[http://doc.ulthon.com/home/read/ulthon_admin/home.html](http://doc.ulthon.com/home/read/ulthon_admin/home.html) +* 文档地址:[https://doc.ulthon.com/read/augushong/ulthon_admin/home/zh-cn/2.x.html](https://doc.ulthon.com/read/augushong/ulthon_admin/home/zh-cn/2.x.html) * 演示地址:[http://admin.demo.ulthon.com/admin](http://admin.demo.ulthon.com/admin)(账号:admin,密码:123456。备注:只有查看信息的权限)