## 不应该做的事情 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 ## 框架工具 ### 数据库操作 项目内置了数据库操作工具,可以直接在命令行中执行数据库操作。命令是: ```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 `。 - 系统会自动识别并完成身份认证。