一直用php的mvc模式,但是一直沒深入研究其原理性的東西,今天把最基本的mvc原理模型總結如下:
1、url訪問方式 ?http://127.0.0.1:8080/ceshi.com/index.php?act=user&op=user
2、建立如下的目錄結構
?
php zend。
3、index.php入口文件
//路由設置$act = $_GET['act'];$class = $act.'Control';//獲取類名$op = $_GET['op'];//獲取方法//自動加載類function __autoload($cla){if(substr($cla,-7)=="Control"){//control$cla = str_replace("Control",'',$cla);require 'control/'.$cla.'.php';}else{//modelrequire 'model/'.$cla.'.php';}}require('lib/func.php');//公用方法$control = new $class();$control->$op();
?
4、公共方法lib/func.php
function Model($model = null){//$file_name = 'model/'.$model.'Model.php';$class_name = $model.'Model';//require($file_name);return new $class_name();//類名 } /*** 格式化打印數據**/ function p($v,$k=false){echo "<pre>";print_r($v);echo"</pre>";$k && exit(); }
5、Model基類model/Model.php
class Model{public $mysqli = null;public function __construct(){$this->mysqli = new MySQLi("localhost","root","","test");} }
mvc工作原理。6、Model子類(常用類)model/test.model.php
class testModel extends Model{public function dataList(){$sql = "select * from article";$encode = $this->mysqli->query("set names gb2312");$datalist = $this->mysqli->query($sql);$listarr = array();while($row = $datalist->fetch_assoc()){$listarr[] = $row;}return $listarr;} }
7、control ?control/user.php
class userControl{public function user(){//echo 'user';$test_model = Model('test');$list = $test_model->dataList();include('view/user_list.php');//此處用模板引擎處理p($list);} }
8、視圖文件 view/user.list.php
$arr = array('a',1,'b'); foreach($arr as $k=>$v){echo $v.'<br />'; }
9、最終結果
php有什么用,?