## Builder的来历
> 事实上Builder首次出现在ThinkPHP的核心代码里,不过TP的Builder只是提供一个模块默认目录规范自动生成的功能,在产品逻辑上的应用并没有得到体现,后来TP官方开发了众所周知OneThink,OT里虽然没有提到Builder的字眼,但是其文档模型里的think.html确可以算是早期的FormBuilder原型了。
长久以来,以织梦CMS、帝国CMS为代表的一系列老牌CMS在模板标签的使用上可以说是炉火纯青,模板标签的出现让前端开发页面变得十分轻松,然而后端开发人员却一直没有优秀的开发模式帮助后端人员从前端页面中解脱出来,而Builder的出现就是为了解决这个问题。
从测试版本发布以来,我们一直在探索如何封装后台的页面生成以解放后端开发人员的生产力。
在传统的MVC分层设计中,开发者需要写MVC三层逻辑代码,而在ThinkPHP的开发中,M层实际上是可以不写的。不写的原因是ThinkPHP分封装了数据层,ORM模式简化了数据库操作,没有数据模型也很方便。
那么剩下的C层和V层中,我们通过研究发现在后台开发时,V层是一项非常费时费力却又包含重复劳动的开发,
再后来,CoreThink在1.0正式版本中终于推出自己Builder,并且用Builder重写了后台的全部页面(除了个别特殊页面)。我们认为程序的后台在早期对页面复杂度的要求停留在两个核心关键:表单+列表。所以我们抽象出了对应的Builder分别为FormBuilder、Listbuilder。
简单来讲FormBuilder用来帮助后端开发自动生成表单页面,比如发布文章、编辑文章;而Listbuilder则用来帮助后端人员自动生成列表页面,比如用户列表、文章列表。可以说,Builder的出现必将WEB开发带入一个新的世纪。
- 简介
- 环境要求
- 安装系统
- 目录结构
- 常见问题
- 基础知识
- 编辑器
- 前端规范
- 前端框架文档
- Builder教程
- Builder的来历
- ListBuilder使用
- setMetaTitle
- addTopButton
- setSearch
- addSearchItem
- setTabNav
- addTableColumn
- setTableDataList
- setTableDataListKey
- setTableDataPage
- addRightButton
- alterTableData
- setExtraHtml
- setTemplate
- FormBuilder使用
- setMetaTitle
- setTabNav
- setExtraItems
- setPostUrl
- addFormItem
- setFormData
- setExtraHtml
- setAjaxSubmit
- setTemplate
- 扩展FormBuilder
- 模块开发
- 创建模块
- 描述文件
- 模型( M )
- 模版( V )
- 控制器( C )
- API接口
- 核心模块
- 文件上传
- 微信小程序模块
- 注册登陆接口
- 钱包模块
- 统一支付
- Cms模块
- 幻灯片接口
- 文档列表接口
- 文档详情接口
- 发表评论接口
- 评论列表接口
- 收藏的文档接口
- 收藏接口
- 分类列表接口
- IM模块
- 发送消息接口
- 最近聊天列表接口
- 查询新消息接口
- 插件相关
- 短信插件
- 支付插件
- 支付宝支付
- 微信支付
- 站群模块
- 模板开发
- 准备工作
- 目录结构
- 数据调用
- 专题
- 插件开发
- 图片显示
- 获取用户信息
- 判断用户登陆
- 表单提交AjaX
- 文件上传
- 2.0兼容写法
- 模板标签
- 核心模块
- Cms模块
- 栏目分类调用
- Cordova
- 配置跨域支持
- 本地开发调试教程
- 打包成apk和ipa
- 自定义APP信息
- 常见问题
- 申请Apple开发者账户
- 多主题开发
- 新建主题
- 目录结构
- 模板变量
- 定制安装部署