mvc是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件架构模式,MVC模式可以使代码结构清晰,更易维护
- 模型(model) : 负责处理数据
- 视图(view) : 负责处理页面
- 控制器(controller): 负责处理业务逻辑
工作的流程
- 控制器 调用 模型 获取数据
- 控制器 将获取到的数据交给 视图 进行渲染
- 视图或控制器将渲染好的视图返回
下面我们用不同的方式实现显示一个水果价格列表,显示效果见下图
0.不使用mvc
<?php
$data = [
'apple'=>['name'=>'苹果','price'=>5],
'banana'=>['name'=>'香蕉','price'=>3],
'pear'=>['name'=>'葡萄','price'=>6]
];
$html = '<ul>';
foreach ($data as $key => $value) {
$html .= "<li>名称:{$value['name']} 价格:{$value['price']}元</li>";
}
$html .= '</ul>';
echo $html;
复制代码
1.单文件函数实现
<?php
controller();
function model()
{
$data = [
'apple'=>['name'=>'苹果','price'=>5],
'banana'=>['name'=>'香蕉','price'=>3],
'pear'=>['name'=>'葡萄','price'=>6]
];
return $data;
}
function view($data)
{
$html = '<ul>';
foreach ($data as $key => $value) {
$html .= "<li>名称:{$value['name']} 价格:{$value['price']}元</li>";
}
$html .= '</ul>';
return $html;
}
function controller()
{
$data = model();
$view = view($data);
echo $view;
}
复制代码
首先定义了m() v() c()
这三个函数
请求进来时调用 c函数(控制器),控制器首先调用 m函数(模型)获取数据,然后调用 v函数(视图) ,将获取到的数据传给视图,由视图渲染html,渲染完成返给控制器,由控制器输出到浏览器
这个版本已经将代码实现了基本的 mvc分离,可以说实现了基本的mvc结构
2.多文件类实现
分别建立Controller类 Model类 View类,并独立到三个文件中,请求由index.php处理
完毕