tp5.0和tp3.2的區別

1. 控制器輸出
return $this->fetch(); ----5
$this->display(); ----3.2數據庫

單字母函數去掉了 如:M() D() U() S() C()數組

3.2 ---------5
G() --------- debug() 記錄時間(微秒)和內存使用狀況
E() --------- exception() 拋出異常處理
C() --------- config() 獲取和設置配置參數
I() --------- input() 獲取輸入數據,支持默認值和過濾
W() --------- widget() 染輸出Widget
D() --------- model() 實例化Model
S() --------- cache() 緩存管理
U() --------- url() Url生成瀏覽器

 

2. 原來3.2版本的模型的getField方法應該如何使用?
原先模型類的getField方法,在5.0的數據庫Query類中拆分兩個方法,一個value方法用於查詢某個行的某個值和一個column方法用於查詢某個列的值,用法以下:
查詢某個字段的值能夠用
//返回某個字段的值
Db::table('think_user')->where('id', 1)->value('name');

原來的舉個查詢方法依然有效
Db::table('think_user')->count();
Db::table('think_user')->max('score');

查詢某一列的值
//返回數組
Db::table('think_user')->where('status', 1)->column('name');
//指定id字段做爲索引
Db::table('think_user')->where('status', 1)->column('name','id');

3.爲何不能識別駝峯法命名的控制器,5.0版本默認狀況下不區分URL的大小寫,也就是說URL裏面的控制器和操做都會強制轉小寫而後去定位控制器類,所以
http://serverName/index/UserType/addType
//和下面的訪問是等效的
http://serverName/index/usertype/addtype

若是須要訪問駝峯法命名的UserType控制器,有兩種方式
(1).使用下面的URL地址訪問
http://serverName/index/user_type/addtype
(2).配置url_convert參數,關閉URL強制轉換
//關閉自動轉換
'url_convert' => false,

4. tp5版本的模板標籤界定符由原來的<>更改成{}
<volist name="list" id="val">
{$val.id}:{$val.name}
</volist>
改成:
{volist name="list" id="val"}
{$val.id}:{$val.name}
{/volist}

5. 控制器的類名默認不帶Controller後綴  模型類的後綴再也不帶Model
6. 3.2版本和5版本 數據庫寫法不同
M('User')->where(['name' => 'think'])->find(); ----3.2
db('User')->where(['name' => 'think'])->find(); ----5

7. 模型區別
D('User')->where(['name' => 'think'])->find(); ----3.2
model('User')->where(['name' => 'think'])->find(); ----5

8. 請求對象和響應對象
5.0新增請求對象Request和響應對象Response, Request統一處理請求和獲取請求信息,Response對象負責輸出酷虎的或者瀏覽器響應

9. 常量簡化
5.0版本廢棄了原來的大部分常量定義,僅僅保留了框架的路徑常量定義,其他的常量能夠使用App類獲取Request類相關屬性獲取方法來完成,或者本身從新定義須要的常量
REQUEST_METHOD
IS_GET
IS_POST
IS_PUT
IS_DELETE
IS_AJAX
__EXT__
COMMON_MODULE
CONTROLLER_NAME
ACTION_NAME
APP_NAMESPACE
APP_DEBUG 
MODULE_PATH緩存

相關文章
相關標籤/搜索