Files
ulthon_admin/AGENTS.md

3.2 KiB
Raw Blame History

不应该做的事情

  1. 一般而言你不需要直接修改开发环境除了安装composer依赖或其他开发相关的资源。但你不应该自己安装docker、mysql、redis等基础环境这些由开发者提前维护好。
  2. 一般而言你不需要修改环境配置文件(如 .env),这些由开发者提前维护好,如果你发现错误应当提示开发者完善相关的配置。
  3. 你不需要自己运行项目程序,开发者会提前运行好,以便你直接在开发过程中调试。

需要遵守的规则

基本规则参考 CODERULE.md; 更多规则参考在线文档 https://doc.ulthon.com/read/augushong/ulthon_admin/home/zh-cn/2.x.html

框架工具

数据库操作

项目内置了数据库操作工具,可以直接在命令行中执行数据库操作。命令是:

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的 Scheme 机制 部分。通过scheme可以获得所有表结构也可以用于设计数据库结构。

开发流程

项目内置CURD机制基本流程在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不生效。

登录认证机制

系统登录时会同时启用 SessionToken 机制。

  • Session 机制:主要用于传统的浏览器环境,依赖 Cookie。
  • Token 机制:专门为接口开发和无法使用 Cookie 的场景(如移动端、小程序、跨域请求等)设计。
  • 使用方法
    • 登录成功后,接口会返回 token 数据。
    • 前端在后续请求中,需将此 token 放入请求头:Authorization: Bearer <token>
    • 系统会自动识别并完成身份认证。