用了幾天webman,感覺(jué)視圖這塊用起來(lái)不是很方便,提幾個(gè)建議:
1、可以參考TP的 View::fetch()
比如:admin/controller/Config 的 index 方法,如果模板路徑?jīng)]有特殊要求的話
那模板文件就是:admin/view/config/index.html
webman用法:return view('config/index'); 如果有成百上千個(gè)方法的話,也挺累的。。。
tp用法:return View::fetch(); 自動(dòng)為 /view/當(dāng)前應(yīng)用/控制器/方法名.html
2、模板目錄
個(gè)人覺(jué)得還是把view獨(dú)立出來(lái)到根目錄,app目錄還是做純業(yè)務(wù)代碼較好。
最好可以在view.php里加個(gè)配置項(xiàng),設(shè)置 模板目錄,默認(rèn):/view/當(dāng)前應(yīng)用/,自定義:/template/當(dāng)前應(yīng)用/
-------上述都是以多應(yīng)用為例!
1、View::fetch()這種功能不適合放在View類(lèi)里,因?yàn)樗枰@取請(qǐng)求的應(yīng)用控制器等信息,導(dǎo)致View類(lèi)與request對(duì)象耦合。
view應(yīng)該只關(guān)注視圖輸入的模板路徑和參數(shù),不應(yīng)該隱式的依賴(lài)request對(duì)象。
還有兩種寫(xiě)法對(duì)比
View::assign('key1', 'value1');
View::assign('key2', 'value2');
View::assign('key3', 'value3');
return View::fetch();
return view('user/index', [
'key1' => 'value1',
'key2' => 'value2',
'key3' => 'value3'
]);
顯然第二種少打很多字符,語(yǔ)義更明確。
如果真需要fetch方法,實(shí)際上應(yīng)該放在控制器基類(lèi)里,然后return $this->view();
,這個(gè)自己封裝下就好了。