ulthon_admin
欢迎 目录和文件规范 系统架构 命名规范 php-cs-fixer public/static目录规范 app/common目录规范 数据库规范 CURD 生成方案 命令行 表结构 数据库迁移代码 最佳实践 数据库自动缓存 视图 包含文件 后台兼容接口请求 后台菜单导入导出 权限的用法 table数据表格 cols operat _if auth titleField field selectList valueParser trueHide fieldFormat templet defaultValue search相关 time defaultSearchValue defaultToolbar init formFullScreen toobar 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

生成方案

本框架的代码生成方案和其他任何框架都不同,是一种全新的思路,通过统一的数据库注释格式,实现代码生成。

其他框架无论是PHP系列、JAVA或GO等,他们的思路都是单独配置思路,比如通过命令行传参,给不同的字段设置不同的组件,好一点的搞了一套可视化拖拽表单组建,再好一点的,疯狂的完善和增强可视化操作,似乎要做一个Dreamweaver一样。
为什么作者要把这种做法成为单独配置呢?有什么缺点吗?
因为这个过程,把设计表结构生成代码作为两个独立的环节去设计了。我们使用熟练掌握的数据库工具设计了表结构,然后再去按照框架的规则再去配置一遍代码生成的规则。这种做法可能对大多数开发者来说,这是自然而然的。
但是作者在使用这些框架的时候(fastadmin、原版easyadmin、若依、若依plus、jeecg等),发现这个体验非常的鸡肋,即便的配置方式极其的强大,作者也感觉是在浪费时间。作为开发者,在设计表结构的时候,每个字段的落地形式(组件类型)就已经思考过了,结果准备开发生成代码了,还要再把这些心路历程再经历一遍,似乎没什么意义。
另一方面,如果这些框架提供的配置效果不好,也很头疼。对于命令行配置的方式,如果没有提供特别完善的文档,上手会非常难受。而对于可视化操作,这要求框架在这方面进行大量的工作,才能做出一个稍微好用一点的面板。但即便做出来了,他们的交互模式也是千篇一律,左侧是组建列表,中间是组件预览,右侧是组件配置。但是配置的时候,可能又有大量的弹框和输入表单,而且页面上给配置“分配”的空间太小了,用起来并不舒服,如果不小心刷新了页面,内容也会丢失,这种做法要求框架付出大量的精力,但似乎并不值得。
还有一点,对于枚举、关联关系等类型,我们要在数据库中记录好他们对应的意义,比如1代表进行中,2代表失败等等。设计表的时候我们已经完善了注释,设计的时候又要再录入一遍,而且如果开发过程中想要调整,又得去数据库改一边,还要再在生成代码代码环节配置一遍,在配置生成代码时,还要把每个字段(即便这个字段没有改动)再操作一遍。

后来作者easyadmin的生成方案后,非常感兴趣,只需要在设计表的时候,写一下表注释就可以了。不过当时easyadmin也支持通过命令行配置,本框架中已经完全移除了这种思路。

但本框架继续沿用了easyadmin的方案,并且明确了整个方案的思路,在这个思路上继续增强和发扬,我们称为数据库注释组件。你只需要在字段注释中,按照框架预设的组建规则填写,生成时对应的组件。
作为开发者,只需要安心设计表结构就行了,唯一要注意的就是按照一个简单的语法去写表注释。这样除了避免了前面谈到的一些情况,同时,也把数据库和业务仅仅结合在一起,比如一旦我们调整了枚举类型,只需要修改注释就可以了,剩下的就是执行一下命令。
很多开发者,注释里只有3个状态,但开发时代码已调整了很多状态了,也不去更新数据库,使用本框架的模式时,我们推荐先修改数据库的注释,然后使用命令重新生成代码,再把对应的更新复制到正式代码中。

原文标题:生成方案

原文文档:ulthon_admin

原文地址:https://doc.ulthon.com/read/augushong/ulthon_admin/67f342c8d755e/zh-cn/2.x.html

原文平台:奥宏文档

2.x