thinkphp是國內比較有代表性的PHP開發(fā)框架,支持MVC開發(fā)模式。ThinkPHP的ORM(Object Relation Mapping)是為方便開發(fā)者使用數據庫開發(fā)的一個存儲訪問層,框架設計圖片如下:
thinkPHP ORM 框架采用Active Record模式(簡稱AR)來設計實現(xiàn)。
相關推薦:《ThinkPHP教程》
立即學習“PHP免費學習筆記(深入)”;
何謂Active Record模式?
就是用一個AR類關聯(lián)數據庫的一張表,每個AR對象對應表中的一行數據;對象的屬性映射到數據行的對應列。
例如,一個Customer AR類關聯(lián)到數據庫中的customer表,該AR類的name屬性代表customer表中的名字是name的字段。
在thinkPHP中,所有AR類的基類是Model類,Model類通過名字關聯(lián)到數據庫中的表,Model類的構造函數如下:
public?function?__construct($name='',$tablePrefix='',$connection='') @param?string??$name?模型名稱 *?@param?string?$tablePrefix?表前綴 *?@param?mixed??$connection?數據庫連接信息
Model類的數據CURD(create,update,retrive,delete)操作, 通過數據庫抽象類Driver的具體實現(xiàn),從而可以通過配置,方便的使用MySQL或Oracle。
通過這樣的設計實現(xiàn),可以獲得如下好處:
1. 具體數據庫不論是MySQL,還是Oracle,或是從MySQL切換到Oracle,在驅動實現(xiàn)之上的代碼不會受到任何影響;
2. 數據庫表映射為AR類,數據庫的CURD操作由AR類負責解釋執(zhí)行,這樣符合面向對象的設計思想;并且是脫離了具體SQL語句的編寫,代碼更簡潔不易出錯。