PHP-自己寫一個簡易的MVC
阿新 • • 發佈:2019-01-26
MVC是PHP框架形式,挑選一個好的MVC框架是你快發效率的首選。
MVC裡面有三層:
View層 顯示資料(資料庫記錄)。
model層 表示應用程式核心(比如資料庫記錄列表)。
controller層 (控制器)處理輸入(寫入資料庫記錄)。
Reg資源擴充套件資料夾
Model(模型)是應用程式中用於處理應用程式資料邏輯的部分。
通常模型物件負責在資料庫中存取資料。
View(檢視)是應用程式中處理資料顯示的部分。
通常檢視是依據模型資料建立的。
Controller(控制器)是應用程式中處理使用者互動的部分。
通常控制器負責從檢視讀取資料,控制使用者輸入,並向模型傳送資料。
---------------------------------------------------------------------------------
下面我們來自己建立實現一個PHP的MVC框架
先建立三個檔案:
controller
view
model
我們設立MVC只有一個index.php入口檔案
如果使用者只是訪問的index.php,沒有傳參,預設訪問indexaction.class.php裡面的Index方法
我們在controller資料夾中建立<?php header("content-type:text/html;charset=utf-8"); //index.php?m=user&a=add $m=empty($_GET['m'])?'index':$_GET['m']; //模組的名稱 //模組的名稱index $a=empty($_GET['a'])?'index':$_GET['a']; //方法的名稱 // include "./controller/".$m."action.class.php"; // 方法的名稱 // 載入控制器檔案 // 優秀的寫法開始 //獲取當前的記載路徑 $include_path=get_include_path(); //拼接所需要的載入路徑 $include_path.=PATH_SEPARATOR."./model"; $include_path.=PATH_SEPARATOR."./controller"; $include_path.=PATH_SEPARATOR."./org"; //PATH_SEPARATOR 在linux上是一個":"號,WIN上是一個";"號 //set_include_path就是設定php的包含檔案路徑,相當是作業系統的環境變數 //get_include_path取得當前已有的環境變數 //設定載入路徑 set_include_path($include_path); //載入控制器檔案 function __autoload($className){ include strtolower($className).".class.php"; } // 優秀的寫法結束 // function __autoload($className){ // if(strtolower(substr($className,-6))=='action'){ // //載入控制器 // include "./controller/".strtolower($className).".class.php"; // }elseif(strtolower(substr($className,-5))=='model'){ // //載入model // include "./model/".strtolower($className).".class.php"; // }else{ // //載入第三方類 // include "./org/".strtolower($className).".class.php"; // } // } $m=ucfirst($m)."Action";//IndexAction $mod=new $m; //$呼叫方法 $mod->$a(); //$mod->index()
indexaction.class.php檔案
shopaction.class.php
useraction.class.php
我們在indexaction.class.php寫入如下內容
<?php header("content-type:text/html;charset=utf-8"); class indexAction{ public function index(){ echo "這是首頁"; echo "<hr>"; echo "<hr>"; $user=new UserModel; echo $array['hao']; var_dump($user->getList()); } public function add(){ echo "這是使用者新增"; } }
然後我們在model檔案下建立usermodel.class.php檔案
<?php
class UserModel{
function getList(){
return array(
array('1' =>'guanyu' ,'2' =>'zhenyu')
);
echo serialize($array);
}
}
這樣,我們就建立好了第一個MVC框架