iBuilder是官方基于前后端分离思想研发的市面上第一个完善的页面自动构建与解析服务,其中构建阶段存在与后端,也就是PHP端,解析阶段存在于云后台。 ## 由来 长久以来,以织梦CMS、帝国CMS为代表的一系列老牌CMS在模板标签的使用上可以说是炉火纯青,模板标签的出现让前端开发页面变得十分轻松,然而后端开发人员却一直没有优秀的开发模式帮助后端人员从前端页面中解脱出来,而Builder的出现就是为了解决这个问题。 ### 初步 事实上Builder首次出现在ThinkPHP的核心代码里,不过TP的Builder只是提供一个模块默认目录规范自动生成的功能,在产品逻辑上的应用并没有得到体现,后来TP官方开发了众所周知OneThink,OT里虽然没有提到Builder的字眼,但是其文档模型里的think.html确可以算是早期的FormBuilder原型了。 ## 前后端不分离版本的Builder 从测试版本发布以来,我们一直在探索如何封装后台的页面生成以解放后端开发人员的生产力。 在传统的MVC分层设计中,开发者需要写MVC三层逻辑代码,而在ThinkPHP的开发中,M层实际上是可以不写的。不写的原因是ThinkPHP分封装了数据层,ORM模式简化了数据库操作,没有数据模型也很方便。 那么剩下的C层和V层中,我们通过研究发现在后台开发时,V层是一项非常费时费力却又包含重复劳动的开发, 再后来,我们在1代商业产品(名称就不在这里放了)里推出自己Builder,并且用Builder重写了后台的全部页面(除了个别特殊页面)。我们认为程序的后台在早期对页面复杂度的要求停留在两个核心关键:表单+列表。所以我们抽象出了对应的Builder分别为FormBuilder、Listbuilder。 简单来讲FormBuilder用来帮助后端开发自动生成表单页面,比如发布文章、编辑文章;而Listbuilder则用来帮助后端人员自动生成列表页面,比如用户列表、文章列表。可以说,Builder的出现必将WEB开发带入一个新的世纪。 Builder的方便快捷很快吸引了一大批用户,后来出现了很多跟风者,如doph***php。 ### 前后端分离版本的Builder 自从Vue等前后端分离框架流行,作者一直在思考基于前后端不分离思想的Builder,从初步提出思路,到逐步论证研究可行性,再到最后真的实现,历经了几个月的时间(当然不是全职100%)。最终在InitAdmin里首次发布了名为iBuilder的Builder。同时官方再一次提供了业界第一款云后台产品,因为既然是前后端分离的,实际上后端解析大家都用的同一套,合并重复部署浪费自然资源呢。云后台还有一个好处就是很多只会后端的朋友不必去学前端也能使用最新最流行的后台了。