建议先了解怎么分两层,http://www.cnblogs.com/-beyond/p/7954177.html
再分两层的基础上,还可对后端处理数据的那一层再一分为二,一层为模型层(model),一层为控制层(controller)
其中模型层(model)的任务是对数据进行处理,然后提供一个接口(interface、function)给控制器层(controller),控制器层把数据(通过调用模型层提供的接口获得) 分配(或者说是指派)给视图层(view),视图层就是分成两层时的模板(template)。
代码示例如下:
视图层(view.php)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>根据ID获得姓名</h1>
<form action="">
<input type="text" name="id">
<input type="submit" name="submit">
</form>
<p>
<?php
if(!empty($result)){
echo $result;
}
?>
</p>
</body>
</html>
然后是控制器层(controller.php):
<?php
// 载入模型层
include("model.php");
//获取视图层传来的数据
$id=isset($_GET['id'])?$_GET['id']:"";
//调用模型层的方法,获得数据,并将数据进行处理。
$result="查询结果是:".getNameByID($id);
//载入视图
include("view.php");
?>
最后是模型层(model.php):
<?php
//此处简单模拟从数据库查询过程。
function getNameByID($id){
$name=array("one"=>"张飞","two"=>"刘备","three"=>"关羽");
if(array_key_exists($id, $name)){
return $name[$id];
} else {
return "暂无此人";
}
}
?>
运行结果如下:
总结:
模型层只负责产生并返回数据(通过提供一个接口给控制器层),一般不会对数据进行额外的格式处理,格式处理的工作应该交给控制器层来做;
控制器层只是接受视图层的请求,根据请求来调用模型提供的接口来获取数据,并对数据的格式等进行处理后 指派 给视图
视图负责展示 包含控制器层分配的 数据的 界面