Files
ulthon_admin/CODERULE.md
2026-01-08 23:43:21 +08:00

168 lines
6.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Ulthon Admin 项目开发规则
## 1. 框架技术栈
- **核心框架**: ThinkPHP 8.0
- **开发语言**: PHP 8+
- **数据库**: MySQL 8+
- **前端框架**: Layui 2.8.6
- **模板引擎**: ThinkPHP 内置模板引擎
- **代码生成器**: 自定义命令行工具
## 2. 项目架构设计
### 2.1 双层架构设计
Uthon Admin 采用独特的双层架构设计,将系统功能分为核心基础层和业务应用层,便于开发者进行二次开发和功能扩展:
- **基础核心层 (`extend/base/`)**:
- 包含系统内置的所有核心功能代码
- 提供标准化的类和方法接口
- 不可直接修改,确保系统稳定性
- 示例:`extend/base/controller/Base.php``extend/base/model/BaseModel.php`
- **业务应用层 (`application/`)**:
- 基于基础核心层扩展开发的具体业务代码
- 所有业务类必须继承基础核心层的对应类
- 开发者可自由修改和扩展,不会影响核心功能
- 示例:`application/admin/controller/User.php` 继承 `base\controller\Base`
### 2.2 继承重写机制
**注意**:继承重写机制主要针对 ulthon-admin 自身的内置功能(如管理员管理、菜单、权限等),用于扩展或修改框架内置功能。
- 对于 ulthon-admin 内置功能,通过继承基础核心类(位于 `extend/base/`),可以获得内置功能并进行扩展
- 需要修改内置功能时,在业务类中重写对应方法,保持方法签名一致
- 支持调用父类方法:`parent::methodName()`
**用户自定义代码**
- 用户自己的业务代码不需要遵守该继承规则
- 生成的代码直接位于 `application/` 目录下
- 可以直接在 `application/` 目录下进行开发和修改
## 3. 开发流程
### 3.1 标准开发步骤
1. **设计数据库表结构**
- 按照业务需求设计合理的表结构
- 必须为所有字段编写清晰、完整的注释
- 遵循命名规范:表名小写,使用下划线分隔
2. **生成基础代码**
- 使用内置命令行工具生成代码
- 支持生成到临时目录,避免覆盖已定制代码
- 生成内容包括:控制器、模型、视图、验证器、菜单配置
3. **代码定制**
- 基于生成的代码进行业务定制
- 仅修改 `application/` 目录下的文件
- 使用继承重写机制扩展基础功能
4. **测试与验证**
- 测试所有功能是否正常工作
- 确保数据完整性和安全性
- 检查代码规范和性能
### 3.2 代码生成命令
CURD命令大全
ulthon_admin框架以内置快速生成CURD的命令, 包括控制器、视图、模型、JS文件。能够使开发者效率得到进一步提升。
> 备注在进行CURD命令行之前, 请按照规范设计表结构, 请参考表结构规范模块说明。
**常用命令**
```
# 生成ul_test_goods表的CURD
php think curd -t test_goods
# 生成ul_test_goods表的CURD到临时目录
php think curd -t test_goods -r
# 生成ul_test_goods表的CURD, 文件冲突时强制覆盖
php think curd -t test_goods -f
# 删除ul_test_goods表的CURD
php think curd -t test_goods -d
# 生成ul_test_goods表的CURD, 控制器在目录demo下的Goods.php文件
# 原路径: `controller\text\Goods.php`
# 此时路径:`controller\demo\Goods.php`
# 不建议指定该参数
php think curd -t test_goods -c demo/Goods
# 生成ul_test_goods表的CURD, 模型在目录demo下的Goods.php文件
# 原路径: `model\MallCate.php`
# 此时路径: `model\demo\Goods.php`
# 不建议指定该参数
php think curd -t test_goods -m demo/Goods
```
**参数介绍**
| 短参 | 长参 |说明|
| ------------ | ------------ | ------|
| -t | `--table=VALUE` | 主表名 |
| -c | `--controllerFilename=VALUE` | 控制器文件名 |
|-m| `--modelFilename=VALUE` |主表模型文件名|
|-f| `--force`|强制覆盖模式 |
|-d| `--delete`|删除模式 |
|-r |`--runtime`|生成到临时目录|
**官方命令行文档**: [https://doc.ulthon.com/read/augushong/ulthon_admin/619efc929565f/zh-cn/2.x.html](https://doc.ulthon.com/read/augushong/ulthon_admin/619efc929565f/zh-cn/2.x.html)
**CURD 文档地址**: [https://doc.ulthon.com/read/augushong/ulthon_admin/619efc816472e/zh-cn/2.x.html](https://doc.ulthon.com/read/augushong/ulthon_admin/619efc816472e/zh-cn/2.x.html)
### 3.3 表结构设计规范
**官方表结构规范文档**: [https://doc.ulthon.com/read/augushong/ulthon_admin/619efc9d7af62/zh-cn/2.x.html](https://doc.ulthon.com/read/augushong/ulthon_admin/619efc9d7af62/zh-cn/2.x.html)
> 以官方在线文档为准,包含详细的表结构设计规范,包括表名规则、特殊字段、数据类型定义等。
## 4. 命名规范
**官方命名规范文档**: [https://doc.ulthon.com/read/augushong/ulthon_admin/64fbcf8830640/zh-cn/2.x.html](https://doc.ulthon.com/read/augushong/ulthon_admin/64fbcf8830640/zh-cn/2.x.html)
> 以官方在线文档为准,包含详细的命名规范说明。
## 5. 代码规范
**官方代码规范文档**: [https://doc.ulthon.com/read/augushong/ulthon_admin/64360c249d66a/zh-cn/2.x.html](https://doc.ulthon.com/read/augushong/ulthon_admin/64360c249d66a/zh-cn/2.x.html)
> 以官方在线文档为准,包含 PHP-CS-Fixer 配置和详细的代码规范说明。
### 5.1 前端文件组织规范
**视图与JS文件对应规则**后台的所有视图每个HTML文件都会搭配一个对应的JS文件文件结构示例
```
goods
├─ add.html
├─ add.js
├─ edit.html
├─ edit.js
├─ index.html
├─ index.js
├─ read.html
├─ read.js
└─ _common.js
```
- 每个功能页面的HTML和JS文件名保持一致
- `_common.js` 用于存放该模块通用的JS代码
- JS文件中应包含对应页面的业务逻辑、事件绑定等
- 这种结构便于维护和扩展,确保前端代码的组织性
## 7. 二次开发注意事项
- 不要修改 `extend/base/` 目录下的任何文件
- 所有业务逻辑都应放在 `application/` 目录下
- 扩展功能时优先考虑继承重写机制
- 保持代码结构清晰,便于维护
- 定期备份代码和数据库
- 遵循版本控制规范,提交信息清晰
---
以上规则是 Ulthon Admin 项目开发的基本规范,所有开发者必须严格遵守。遵循这些规则可以提高代码质量,减少开发成本,便于系统维护和扩展。