MVC模式的view層的主要任務是進行頁面的和結果的顯示工作,在php的實現過程中,主要是體現為一個模板(使用模板,可以達到php代碼和html代碼分離的目的,這樣代碼和頁面的維護就方便多了,便於管理和頁面的更換,可以真正的劃分程式員、美工的分工)的解析過程:
首先,controler層從model層得到資料
其次,controler層將資料交給view層
再次,view層的介面將資料按一定的方式傳給模板解析類,
最後,模板解析類將資料解析到模板中,然後顯示。
下面是一個具體的實現例子
目錄結構
|- ClassRenderTest.php //測試解析classlist.html |- StudentRenderTest.php //測試解析studentlist.html |- render / TemplateParser.php //模板解析類 |- render / Render.php //解析模板的所有類的基礎類 |- render / StudentRender.php //解析模板studentlist.html的類 |- render / ClassRender.php //解析模板classlist.html的類 |- template / studentlist.html //模板檔案 |- template / classlist.html //模板檔案 |
注意:
1、這裡模板解析類選用了簡單的“TemplateParser.php”,根據個人的需要你可以選用任何一種模板解析類;
2、如果每個模板解析都直接調用“TemplateParser.php”,可能會有大量的重複代碼出現,這是oo思想所不準許出現的。因此採用“Render.php”對它進行封裝,然後再對“Render.php”裡面的Render類進行擴充,來對不同檔案模板進行解析;
3、不同的模板解析類的,使用的方法是不同的,他們的封裝方式也可能不同。
4、“StudentRender.php”“ClassRender.php”就是封裝過的Render類,分別用來滿足解析“studentlist.html”“classlist.html”的需要。
檔案1:classlist.html
current time is : _now_ <BR><BR> current school class list : <TABLE border=1> <TR> <TH>ID</TH> <TH>NAME</TH> <TH>GRADE</TH> <TH>CLASS</TH> </TR> BEGIN_classlist_ <TR> <TD>_cid_</TD> <TD>_cname_</TD> <TD>_grade_</TD> &nb |
<