經過20天的改進和測試,ThinkPHP5.2第二個Beta測試版本發布了。這次主要改進了fetchSql方法的處理機制,統一和簡化了許多查詢用法。
主要更新
#改進了fetchSql的解析機制
引入了單獨的Fetch類別單獨處理fetchSql方法,確保Query類別查詢方法的回傳類型不受fetchSql影響。
統一且精簡了查詢用法
這次測試版本統一精簡了許多查詢用法,讓你不會再有一個查詢功能多種用法的困擾,便於制定團隊規格。
get/all查詢方法統一為find/select方法;
取消fetchPdo方法,傳回PDO物件統一使用pdo查詢方法;
resultset_type設定統一使用fetchCollection方法;
readMaster方法,統一使用 master方法;
save方法不支援傳入條件,統一查詢和更新方法呼叫;
db/model助手函數,統一使用類別呼叫;
增加了fetchArray方法
如果使用了模型查詢,現在可以透過呼叫fetchArray方法,查詢結果將始終傳回數組資料。方便一些統計圖表的資料傳入。
時間欄位寫入改用DateTime類別
時間欄位的自動操作改用DateTime類,支援微秒時間記錄,提供更高精度的系統時間記錄。
只需要設定資料表時間欄位的小數位精度即可自動記錄,如果需要輸出微秒精度數據,設定dateTimeFormat格式即可。
模型增加schema屬性
模型增加schema屬性支持,用於定義對應資料表的欄位及類型訊息,並且支援使用PHP變數類型定義。定義了此屬性後,無需使用optimize:schema即可提升查詢效能,以及自動辨識欄位的參數綁定類型。
模型的type屬性僅用於設定自動類型轉換的資料表欄位。支援應用公共函數檔案
多重應用模式下,支援載入應用的公用函數檔。多重入口檔案自動識別
如果沒有在應用程式入口檔案中指定應用程式名,入口檔案存取的時候可以自動辨識目前的應用名稱。預設會取目前應用程式入口的檔案名稱作為應用程式名稱。部分方法不再支援
以下用法是因為實用性或精簡考慮不再支援:#Query類別的fetchPdo方法(可以使用pdo方法替代);
#Query類別的get/all/getOrFail/allOrFail方法;
方法不再支援where參數;
類別和模型類別的readMaster方法,該方法在swoole下無法正常使用(需要的話手動呼叫master#方法);
和setDec方法;
設定
##(需要的話調用
Db類別靜態方法取代);
改進join方法的table參數解析
#廢棄save方法的where 參數
取消模型類別的setInc和setDec方法
改進模型欄位資訊的取得
取消模型與Db類別的readMaster#方法
改進參數綁定類型取得
Query類別增加fetchArray方法支援模型查詢傳回陣列類型
時間欄位自動寫入改為使用DateTime類,支援微秒資料
改進驗證類別擴充驗證規則的時候不檢查是否require
改進查詢CURD方法
修正模型輸出
改進update方法
#修正insertGetId方法
修正getFieldType方法
改進think schema 指令
改進快取和日誌的路徑取得
刪除db助理函數修正幾個助手函數
Builder
方法增加第二個參數
#取消resultset_type設定
修正動態查詢方法的
fetchsql改進多應用程式入口檔案的自動辨識
修正server方法的回傳類型
多重應用模式允許載入公用函數檔案
修正路由類別getBind方法
改進session設定參數
修正資源路由
##改進console類別
修正make指令
assign方法
Cookie類別修正request類別
修正#取消
get/all方法統一使用find
/fetchPdo方法
修正