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。同時官方再一次提供了業界第一款云后臺產品,因為既然是前后端分離的,實際上后端解析大家都用的同一套,合并重復部署浪費自然資源呢。云后臺還有一個好處就是很多只會后端的朋友不必去學前端也能使用最新最流行的后臺了。
- 說明
- 簡介
- 系統安裝
- 后端注意
- 目錄結構
- 數據表
- 用戶注冊
- 前端注意
- 后端接口開發
- 新建模塊
- 創建數據表
- 創建模型
- 創建后臺控制器
- 添加后臺接口
- 創建前臺控制器
- 添加前臺接口
- 常用接口
- 檢查用戶登錄
- 內置接口
- Builder動態頁面
- Builder列表
- addTopButton
- addRightButton
- addColumn
- setDataList
- setDataPage
- getData
- Builder表單
- setFormMethod
- addFormItem
- 單圖image
- 多圖images
- addFormRule
- setFormValues
- getData
- 自定義組件
- 自定義頁面組件
- 自定義Form組件
- 加載第三方js插件
- 常見問題
- 模塊開發者
- 升級指南
- 圖標
- 擴展
- Composer
- ThinkPHP5.1
- GuzzleHttp
- phpspreadsheet
- QueryList
- phpseclib
- 云后臺接口