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