首先我们先来介绍下MVC的几个基本的文件目录
鄙人对MVC的认识
MVC是一种设计模式,它强制的将应用程序的输入、处理、和输出分开。 使用了MVC的应用程序被分为3个核心部件:试图(View)、模型(Model)、控制器(Controller)。它们各司其职,既分工明确又相互合作。
首先视图接受用户输入请求,然后将请求传递给控制器,控制器再调用某个模型来处理用户的请求,在控制器的控制下,再将处理后的结果交给某个视图进行格式化输出给用户.
MVC 的运行原理为
第一步 浏览者 -> 调用控制器,对他发出指令 第二步 控制器 -> 按指令选取一个合适的模型 第三步 模型 -> 安控制器指令取相应的数据 第四步 控制器 -> 按指令取相应的试图 第五步 试图 -> 把第三步取到的数据按照用户想要的样子显示出来
下边我们来做一个简单的MVC框架,仅作为入门学习。
第一步 制作第一个控制器程序
控制器名称为
testController.class.php
<?php
class testController{
function show(){
$restModel = M('test');
$data = $restModel->get();
$testView = V('test');
$testView->display($data);
}
}
?>
其中 M()和V()函数为自定义封装函数,在下边的function.php中会有介绍。
第二步 制作第一个模型程序
模型名为
testModel.class.php
<?php
class testModel{
function get(){
return 'hello';
}
}
?>
第三步 制作第一个视图程序
文件名为
testView.class.php
<?php
class testView{
function display($data){
echo $data;
}
}
?>
第四步 创建function.php 为我们的自定义函数系列文件,里边包括我们所有自定义封装的函数。
<?php
function C($controller,$metho){
require_once('lib/Controller/'.$controller.'Controller.class.php');
eval('$obj = new '.$controller.'Controller(); $obj->'.$metho.'();');
}
function M($name){
require_once('lib/Model/'.$name.'Model.class.php');
eval('$obj = new '.$name.'Model(); ');
return $obj;
}
function V($name){
require_once('lib/View/'.$name.'View.class.php');
eval('$obj = new '.$name.'View();');
return $obj;
}
function daddslashes($str){
return (!get_magic_quotes_gpc()?addslashes($str):$str);
}
?>
daddslashes()函数为验证函数,方法等参数的安全,会帮我们过滤一遍,在进行调用。
最后我们的入口文件 index.php
<?php
require_once('function.php');
$controllerAllow=array('test','index');
$methoAllow=array('test','index');
@$controller=in_array($_GET['controller'],$controllerAllow)?daddslashes($_GET['controller']):'test';
@$metho=in_array($_GET['metho'],$methoAllow)?daddslashes($_GET['metho']):'show';
C($controller,$metho);
?>
这样,我们简单的一个MVC框架就搭建完成了