最近的打算是入门渗透,首先补补php的坑,先来了解一下最基本的PHP框架的基本结构
那么什么是MVC呢?维基百科定义MVC是: > MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。
MVC模式最早由Trygve Reenskaug在1978年提出[1],是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件架构。
MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并且使程序某一部分的重复利用成为可能。除此之外,此模式通过对复杂度的简化,使程序结构更加直观。软件系统通过对自身基本部分分离的同时也赋予了各个基本部分应有的功能。专业人员可以通过自身的专长分组:
- 控制器(Controller)- 负责转发请求,对请求进行处理。
- 视图(View) - 界面设计人员进行图形界面设计。
- 模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据 管理和数据库设计(可以实现具体的功能)。
简单说,mvc就是一种设计模型,它把业务逻辑和具体的数据显示区分开,进行了分层。即上面提到的三个部分:
- M:model 模型,完成具体的业务逻辑
- V:view,试图,负责展示信息的
- C:controller,控制器,负责发号施令,扮演了一种交通警察的角色(把方法进行区分,在前台传来需求的时候,确定用什么方法进行处理)
view即是视图,也就是web页面,control即是控制器 向系统发出指令的工具,model 简单说是从数据库中取出数据进行处理。
具体的流程见下图:
首先我们打开浏览器输入地址,即url,这个请求被服务端处理的时候会首先解析url,然后根据后面三个参数进行分类处理,根据p参数找到对应的平台,根据c找到对应的控制器,根据a找到对应的控制器中的方法,对应的控制器再根据具体来调用数据库模型进行相应的数据库操作,以及数据的逻辑处理,并返回结果,然后由view层进行显示。
Mvc的工作流程:
- 第一步 浏览者->调用控制器,对此发出指令
- 第二步 控制器->按指令选取一个合适的模型
- 第三步 模型->按照控制器指令选取相应的数据
- 第四步 控制器->按指令选取相应的视
- 第五步 视图->把第三步取到的数据按用户想要的样子显示出来
mvc模式的优势很明显:分层明确,便于团队开发和修改。
简单示例
下面为一个MVC的基本结构示例,首先我们给出一个简单的controller模型(testController.class.php):
1
2
3
4
5
6
7
8
9
10
11
12
class testController{
function show(){
$testModel = new testModel();//选取合适的模型
$data = $testModel->get();//获取相应的数据
$testView = new testView();//选择相应的视图
$testView->display($data);//展示给用户
}
}
1
2
3
4
5
6
7
8
9
class testModel{
function get(){
return "hello world";
}
}
1
2
3
4
5
6
7
class testView{
function display($data){
echo $data;
}
}1
2
3
4
5
6
7
8
9
require_once('testController.class.php');
require_once('testModel.class.php');
require_once('testView.class.php');
$testController = new testController();//调用控制器
$testController->show();www
目录,访问test.php即可看到'hello
world'字样。这就是一个最简单的MVC模型了。