前后端分离--三层
建议先了解怎么分两层,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 "暂无此人"; } } ?>
运行结果如下:
总结:
模型层只负责产生并返回数据(通过提供一个接口给控制器层),一般不会对数据进行额外的格式处理,格式处理的工作应该交给控制器层来做;
控制器层只是接受视图层的请求,根据请求来调用模型提供的接口来获取数据,并对数据的格式等进行处理后 指派 给视图
视图负责展示 包含控制器层分配的 数据的 界面
如需转载,请注明文章出处,谢谢!!!