简说PHP之MVC

398 阅读1分钟
mvc是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件架构模式,MVC模式可以使代码结构清晰,更易维护
  • 模型(model) : 负责处理数据
  • 视图(view) : 负责处理页面
  • 控制器(controller): 负责处理业务逻辑
工作的流程
  1. 控制器 调用 模型 获取数据
  2. 控制器 将获取到的数据交给 视图 进行渲染
  3. 视图或控制器将渲染好的视图返回


下面我们用不同的方式实现显示一个水果价格列表,显示效果见下图


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处理



完毕