一直用php的mvc模式,但是一直没深入研究其原理性的东西,今天把最基本的mvc原理模型总结如下:
1、url访问方式 http://127.0.0.1:8080/ceshi.com/index.php?act=user&op=user
2、建立如下的目录结构
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{//model require '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"); } }
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、最终结果