.augment-guidelines 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. # Augment Guidelines for KKU Laravel Project
  2. ## 项目概述
  3. - 这是一个基于Laravel 11的农场游戏系统
  4. - 项目本地使用Docker运行,访问地址:http://kku_laravel.local.gd
  5. - 当前项目处理维护期,不得随意对数据库的表结构进行修改,不得对涉及游戏数值的表进行修改
  6. ## 工作流程规范
  7. ### 任务开始前
  8. 1. 获取当前时间:使用 `date` 命令
  9. 2. 检查git状态:`git status`
  10. ### 任务执行中
  11. 1. 使用MCP测试网页修改
  12. 2. 使用MCP执行SQL操作
  13. 3. 使用 `php artisan debug:reproduce-error` 命令进行请求(sys_request_logs表)回放
  14. 4. 编写代码时添加中文注释
  15. ### 任务完成后
  16. 1. 检查git状态并提交代码:使用中文CommitMessage
  17. 2. Push代码到远程仓库
  18. 3. 创建任务记录:`./AiWork/年月/日时分-任务标题.md`
  19. ## 代码编写规范
  20. ### 语言和注释
  21. - 使用中文进行交流和编写文档
  22. - 代码中增加中文注释
  23. ### 命名规范
  24. - 枚举:遵循PSR-4标准,使用PHP enum语法,避免魔法数字
  25. ### 设计原则
  26. - 功能拆分为独立简单静态类,避免复杂设计模式
  27. - 模块间通过Service层交互,不直接访问其他模块模型
  28. - 事件用于模块间通信,模块内部不使用事件机制
  29. ## 架构设计规范
  30. ### 模型层 (Model)
  31. - 继承自 `\UCore\ModelCore`,保持无业务逻辑
  32. - 不设置$prefix属性(全局配置在config/database.php)
  33. - 在模型中定义访问器而非控制器中实现逻辑
  34. - 为模型创建独立Cast类,不同模型不共用Cast类
  35. - 不使用数据库迁移类,直接提供SQL语句修改数据库结构
  36. ### 后台(Admin)
  37. - 后台控制器继承自 `UCore\DcatAdmin\AdminController`
  38. - 使用Grid/Show/Form的'make'方法实例化
  39. - 使用GridHelper/ShowHelper/FormHelper/FilterHelper辅助类
  40. - 后台控制器添加路由注释,加入后台菜单适当位置
  41. - 后台列表页面来源表名列可点击跳转到对应详情页面
  42. - Repository类参考Fund模块实现,内部不包含方法,仅供后台管理数据访问
  43. - 仓库层仅供后台控制器使用
  44. ### 服务层 (Service) 和逻辑层 (Logic)
  45. - 服务层:对外Service(静态方法),内部Logic类
  46. - 服务层直接使用逻辑层和模型,仓库层仅供后台控制器使用
  47. - 服务层返回DTO对象而非Model,Handler中将DTO转换为protobuf格式
  48. - 逻辑层不能开启事务,需要事务进行事务开启检查
  49. ### DTO层
  50. - DTO类继承自 `UCore\Dto\BaseDto`
  51. - 实现fromModel静态方法
  52. - 使用驼峰命名公共属性
  53. ### 验证层 (Validation/Validator)
  54. - 使用Validation和Validator类处理验证逻辑,参考'docs/Validation使用示例.md'
  55. - Validation类禁止动态属性赋值,需先定义属性并声明类型
  56. ### Handler层
  57. - Handler类参考PesticideHandler模式:先验证再执行操作
  58. - Handler类不设置异常处理,继续抛出异常交由框架处理
  59. ## 包管理规范
  60. - 始终使用包管理器进行依赖管理,不手动编辑包配置文件
  61. ## 测试规范
  62. - 在tests目录编写非模块phpunit测试
  63. - 使用 `vendor/bin/phpunit` 运行测试
  64. - 测试的 Command在Test模块编写
  65. - 建议为新功能编写测试并执行验证
  66. ## 文档规范
  67. - README.md使用可点击目录结构,包含锚点链接和状态图标
  68. - 文档偏好包含流程图和图表以便更好地可视化
  69. ## 调试和错误处理
  70. - 接口数据问题时优先检查数据结构字段名匹配
  71. - 注意Logic层返回字段名与Handler中访问字段名一致
  72. - Handler处理protobuf响应时确保所有必需字段有正确数据源
  73. - 使用 `php artisan debug:reproduce-error {请求ID}` 命令回放错误请求进行调试验证,
  74. ## 特殊注意事项
  75. - 不使用数据库迁移,不注册路由(使用注解),不包含视图/前端资源/中间件/计划任务
  76. - 后台管理界面使用Dcat Admin框架,不使用通用REST API