由於研究TP5時間不是很長,暫時先列如下幾處差別:php
一、過去的單字母函數已徹底被替換掉,以下:thinkphp
S=>cache,C=>config,M/D=>model,U=>url,I=>input,E=>exception,L=>lang,A=>controller,R=>action數組
二、模版渲染:$this->display() => return view()/return $this->fetch();bash
三、在model中調用自身model:$this => Db::table($this->table)函數
四、在新建控制器與模型時的命名:fetch
①控制器去掉後綴controller:UserController => Userui
②模型去掉後綴model:UserModel => Userthis
五、url訪問:url
若是控制器名使用駝峯法,訪問時須要將各字母之間用下劃線連接後進行訪問。spa
eg:控制器名爲AddUser,訪問是用add_user來進行訪問
六、在TP5中支持配置二級參數(即二維數組),配置文件中,二級配置參數讀取:
①Config::get('user.type');
②config('user.type');
七、模板中支持三元運算符的運算:{$info.status ? $info.msg : $info.error}還支持這種寫法:{$varname.aa ?? 'xxx'}或{$varname.aa ?: 'xxx'}
八、TP5內置標籤:
系統內置的標籤中,volist、switch、if、elseif、else、foreach、compare(包括全部的比較標籤)、(not)present、(not)empty、(not)defined等
九、TP5數據驗證:
$validate = new Validate(['name' => 'require|max:25','email' => 'email']);
$data = ['name' => 'thinkphp','email' => 'thinkphp@qq.com'];
if(!validate->check($data)){
debug::dump($validate->getError());
}
注:使用助手函數實例化驗證器——$validate = validate('User');
十、TP5實現了內置分頁,使用以下:
查詢狀態爲1的用戶數據,且每頁顯示10條數據
$list = model('User')->where('status',1)->paginate(10);
$page = $this->render();
$this->assign('_list',$list);
$this->assign('_page',$page);
return $this->fetch();
模板文件中分頁輸出代碼以下:
<div>{$_page}</div>