理解MVC设计模式

什么是MVC

MVC模式(Model-View-Controller)

模型-视图-控制器(MVC)是一种软件架构模式(设计模式)
MVC把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

PHP中MVC模式也称Web MVC,从上世纪70年代进化而来。
MVC 的目标是将业务逻辑从用户界面的考虑中分离。
这样,开发者就可以更容易地改变每一部分而不会影响其他。

典型的Web MVC流程

一个典型的Web MVC流程:
1.Controller截获用户发出的请求;
2.Controller调用Model完成状态的读写操作;
3.Controller把数据传递给View;
4.View渲染最终结果并呈献给用户。
在这里插入图片描述

Model的职责

数据、行为、方法是Model的主要内容。
实际工作中,Model是MVC中代码量最大。
Model是逻辑最复杂的地方,因为应用的业务逻辑也要在这里表示。
注意将Model与Controller区分开。
Model是处理业务方面的逻辑,Controller只是简单的协调Model和View之间的关系
只要是与业务有关的,就该放在Model里面。
数据校验、public常量和变量,都应该放在model层
也就是说,有可能被重复使用的属性或方法,都应该放在model层,一次定义,到处使用。
Model不应该访问request、session以及其他环境数据,这些应该由Controller注入。
好的设计,应该是胖Model,瘦Controller

View的职责
视图View – 负责渲染数据,通过HTML方式呈现给用户

View就是负责显示。
一切与显示界面无关的东西,都不应该出现在view里面。
View 中一般不应该出现复杂的判断语句,以及复杂的运算过程。
可以有简单的循环语句、格式化语句。
对于PHP的Web应用而言,HTML是View中的主要内容。
View应该从不调用Model的写方法。
也就是说,View只从Model中读取数据,但不改写Model。
所以我们说,View和Model是老死不相往来的。
而且,View中不直接访问 $ _GET和$_POST,应该由Controller传递给View。
此外,View一般没有任何准备数据处理的内容,如查询数据库等。
这些一般是放在Controller里面,并以变量的形式传给视图。
也就是说,视图里面要用到的数据,就是一个变量。

Controller的职责
控制器Controller - 负责响应用户请求、管理模型和视图中的通信

对于Controller,主要是响应用户请求,决定使用什么视图,需要准备什么数据用来显示。
因此,对于request的访问代码,应该放在Controller里面,比如 G E T 、 _GET、 GET_POST等。
Controller应该仅限于获取用户请求数据,不应该对数据有任何操作或预处理,这应该放在 Model 里面。
对于数据的写操作,要调用Model类的方法完成。
对于用户请求的响应,要调用视图渲染。
此外,一般不要有HTML代码等其他表现层的东西,这应该是属于View的内容。

代码规范
代码的规范 - 约定大于配置

  1. MySQL的表名需小写或小写加下划线,如:item,car_orders。

  2. 模块名(Models)需用帕斯卡命名法,即首字母大写,并在名称后添
    加Model,如:ItemModel。

  3. 控制器(Controllers)需用帕斯卡命名法,即首字母大写,并在名称
    后添加Controller,如:ItemController。

  4. 方法名(Action)需用驼峰命名法,即首字母小写,如:index。

  5. 视图(Views)部署结构为控制器名/行为名,如:item/index.html。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值