因為研究TP5時間不是很長,暫時先列以下幾處差異:
1、過去的單字母函數已完全被替換掉,如下:
S=>cache,C=>config,M/D=>model,U=>url,I=>input,E=>exception,L=>lang,A=>controller,R=>action
2、模版渲染:$this->display() => return view()/return $this->fetch();
3、在model中調用自身model:$this => Db::table($this->table)
4、在新建控制器與模型時的命名:
①控制器去掉后綴controller:UserController => User
②模型去掉后綴model:UserModel => User
5、url訪問:
如果控制器名使用駝峰法,訪問時需要將各字母之間用下划線鏈接后進行訪問。
eg:控制器名為AddUser,訪問是用add_user來進行訪問
6、在TP5中支持配置二級參數(即二維數組),配置文件中,二級配置參數讀取:
①Config::get('user.type');
②config('user.type');
7、模板中支持三元運算符的運算:{$info.status ? $info.msg : $info.error}還支持這種寫法:{$varname.aa ?? 'xxx'}或{$varname.aa ?: 'xxx'}
8、TP5內置標簽:
系統內置的標簽中,volist、switch、if、elseif、else、foreach、compare(包括所有的比較標簽)、(not)present、(not)empty、(not)defined等
9、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');
10、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>