1. 程式人生 > >PHP-自己寫一個簡易的MVC

PHP-自己寫一個簡易的MVC

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方法

<?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()
我們在controller資料夾中建立

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框架