tp3.2和tp5區別

1、控制器的類名默認不帶Controller後綴 模型類的後綴不再帶Model
2、 控制器輸出
return $this->fetch(‘index/index’);
$this->display(‘index/index’);

單字母函數去掉了 如 M( ) D( ) U( ) S( ) C( ) 基於以下原因廢除了單字母函數
1、5.0核心已經不依賴任何函數 只是對常用的的操作封裝提供了助手函數並默認加載了助手函數 配置如下:
擴展函數文件定義
‘extra_file_list’ => [THINK_PATH . ‘helper’ .EXT],

2、助手函數是可以完全自己定義和修改 並不影響其他的使用 配置如下:
擴展函數
‘extra_file_list’ => [APP_PATH . ‘helper’ .EXT],

3、現在的IDE提示和自動完成功能非常強大,所以用不用助手函數,或者是否需要改成原來的單字母函數 全憑開發者個人意願
3、getField方法
原來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’);

4、控制器不區分URL的大小寫
http://serverName/index/UserType/addType

//和下面的訪問是等效的
http://serverName/index/usertype/addType

如果需要訪問駝峯式命名的UserType控制器,有兩種方法
1、使用下劃線’_'的方式:
http://serverName/index/user_type/addType

2、配置項url_convert參數 關閉URL強制轉換
‘url_convert’=>false,

5、模型 3.2版本 和 5版本區別
D(‘User’)->where([‘name’=>‘thinkphp’])->find();
model(‘User’)->where(‘name’,‘thinkphp’)->find();

6、3.2版本和5版本 數據庫操作寫法不一樣
M(‘User’)->where([‘name’=>‘thinkphp’])->find();
db(‘User’)->where(‘name’,‘thinkphp’)->find();

7、請求對象和響應對象
5.0新增了請求對象Request和響應對象Response,Request統一處理請求和獲取請求信息,Response對象負責輸出客戶端或者瀏覽器響應
8、常量簡化
5.0版本廢棄了原來的大部分常量定義,僅僅保留了框架的路徑常量定義,其餘的常量可以使用App類或者Request類的相關屬性或者方法來完成,或者自己重新定義需要的常量
REQUEST_METHOD
IS_GET
IS_POST
IS_PUT
IS_DELETE
IS_AJAX
EXT
COMMON_MODULE
MODULE_NAME
CONTROLLER_NAME
ACTION_NAME
APP_NAMESPACE
APP_DEBUG MODULE_PATH

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章