ulthon_admin
欢迎
目录和文件规范
系统架构
命名规范
php-cs-fixer
public/static目录规范
app/common目录规范
数据库规范
CURD
生成方案
命令行
表结构
数据库迁移代码
scheme机制
最佳实践
数据库自动缓存
视图
包含文件
后台兼容接口请求
后台菜单导入导出
权限的用法
table数据表格
cols
operat
_if
auth
titleField
field
tab
edit
selectList
valueParser
trueHide
fieldFormat
templet
defaultValue
search相关
time
defaultSearchValue
size
defaultToolbar
init
formFullScreen
toobar
limit
modifyReload
控制器
CURD方法
导出
控制器通用验证
dataBrage向js传递参数
组件控件
select
下拉菜单option拼接
lay-submit
paste-text粘贴
multiple-columns
editor
data-upload上传
tag-input标签输入
property-input动态字段输入
data-date时间控件参数
table-data列表选择器
city-picker城市选择器
copy-text
全局监听组件
data-request
data-open
内置定时器
并发模式
重置密码
系统配置
PHP助手函数
sysconfig
JS助手函数
checkMobile
empty
open 弹框
叠加loading
getDataBrage
getQueryVariable
扩展机制
事件扩展
实现事件
执行事件
事件列表
AdminLayoutRequireAfter
LoadMigrationFiles
AdminLoginIndex
AdminLoginForget
AdminLoginType
AdminMenuTab
AdminLayoutRequireBefore
自动更新
性能优化
精简代码
关闭数据库日志驱动
皮肤
正常
科幻
其他
切换模块时直接切换内容
关闭上传文件注入检测
代码编译原理
接入workerman和命令参数
升级TP6.1
Request的默认过滤
异步引入全局script
线上安装脚本
兼容PHP8.1
Ulthon Admin Scheme 机制详解
1. 功能简介
Scheme 机制是 Ulthon Admin 引入的一种数据库即代码 (Database as Code) 解决方案。它通过 PHP 类(Scheme 类)来定义和管理数据库表结构,实现了数据库结构与代码的双向同步。这一机制极大地简化了团队协作中的数据库版本控制、迁移和多环境部署问题。
2. 核心特性
- 双向同步:
- DB to Code: 支持从现有数据库表反向生成 PHP Scheme 类,保留字段注释及特殊配置(如
{radio}组件标识)。 - Code to DB: 支持通过修改 PHP 类来变更数据库表结构。
- DB to Code: 支持从现有数据库表反向生成 PHP Scheme 类,保留字段注释及特殊配置(如
- 安全变更: 在执行同步(Code to DB)时,系统会自动将原表重命名备份(格式:
前缀_backup_时间_原表名),确保数据绝不丢失。 - 属性驱动: 使用 PHP 8 Attributes(注解)定义表和字段属性,语法简洁直观。
- 多库适配: 底层自动适配 MySQL 和 SQLite 语法,一套代码多处运行。
3. 目录结构
- 业务定义层 (
app/admin/scheme/):- 存放具体业务表的 Scheme 类文件(如
TestGoods.php)。 - 这是开发者日常工作的主要目录。
- 存放具体业务表的 Scheme 类文件(如
- 应用接入层 (
app/common/scheme/):- 提供基类继承,允许开发者扩展底层逻辑。
- 核心驱动层 (
extend/base/common/scheme/):- 框架底层实现,包含属性解析、SQL 生成器等核心逻辑(严禁修改)。
4. 核心命令详解
4.1 反向生成 (DB -> Code)
读取数据库中的表结构,生成对应的 PHP Scheme 类文件。
# 生成指定表 (推荐)php think scheme:make -t test_goods# 强制覆盖已存在的文件php think scheme:make -t test_goods -f
4.2 正向同步 (Code -> DB)
根据 PHP Scheme 类的定义,更新数据库表结构。
# 同步所有 Scheme 定义到数据库php think scheme:sync# 流程说明:# 1. 扫描 app/admin/scheme/ 下的所有类# 2. 检查数据库中是否存在同名表# 3. 如果存在,将其重命名为备份表 (例如 ul_backup_20250109_ul_test_goods)# 4. 根据 PHP 类创建新表# 5. (可选) 尝试从备份表恢复数据
5. 最佳实践流程
- 设计初期: 可以先在数据库工具中快速建表,确立字段结构。
- 固化结构: 使用
php think scheme:make将表结构固化为代码并提交到 Git。 - 迭代开发: 后续修改字段时,直接修改 PHP Scheme 类,然后运行
php think scheme:sync应用变更。 - 团队协作: 其他成员拉取代码后,运行
scheme:sync即可获得最新的数据库结构,无需传递 SQL 文件。
原文标题:scheme机制
原文文档:ulthon_admin
原文地址:https://doc.ulthon.com/read/augushong/ulthon_admin/6960feafc20bd/zh-cn/2.x.html
原文平台:奥宏文档
2.x