1.概述
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設計典范,用一種業務邏輯、數據、界面顯示分離的方法組織代碼,將業務邏輯聚集到一個部件裡面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業務邏輯。MVC被獨特的發展起來用於映射傳統的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結構中。
2.代碼結構
3.代碼實現
<?php //function.php //控制器調用函數 function C($name, $method){ require_once('libs/Controller/'.$name.'Controller.class.php'); //$testController = new testController(); //$testController->show(); eval('$obj = new '.$name.'Controller(); $obj->'.$method.'();'); } //模型調用函數 function M($name){ require_once('libs/Model/'.$name.'Model.class.php'); eval('$obj = new '.$name.'Model();'); return $obj; } //視圖調用函數 function V($name){ require_once('libs/View/'.$name.'View.class.php'); eval('$obj = new '.$name.'View();'); return $obj; } //過濾非法值 function daddslashes($str){ return (!get_magic_quotes_gpc())?addslashes($str):$str; } ?>
<?php //test.php /* 第一步 浏覽者 -> 調用控制器,對它發出指令 第二步 控制器 -> 按指令選取一個合適的模型 第三步 模型 -> 按控制器指令取相應數據 第四步 控制器 -> 按指令選取相應視圖 第五步 視圖 -> 把第三步取到的數據按用戶想要的樣子顯示出來 */ require_once('View/testView.class.php'); require_once('Model/testModel.class.php'); require_once('Controller/testController.class.php'); $testController = new testController(); $testController->show(); ?>
<?php //testController.class.php /* 控制器的作用是調用模型,並調用視圖,將模型產生的數據傳遞給視圖,並讓相關視圖去顯示 */ class testController{ function show(){ /*$testModel = new testModel(); $data = $testModel->get(); $testView = new testView(); $testView->display($data);*/ $testModel = M('test'); $data = $testModel->get(); $testView = V('test'); $testView->display($data); } } ?>
<?php //testModel.class.php /* 模型的作用是獲取數據並處理,返回數據 */ class testModel{ function get(){ return "hello world"; } } ?>
<?php //testView.class.php /* 視圖的作用是將獲得的數據進行組織,美化等,並最終向用戶終端輸出 */ class testView{ function display($data){ echo $data; } } ?>
運行結果: