mvc深刻理解,logic,service,model层的作用

简介: mvc深刻理解,logic,service,model层的作用

大家在接触框架时,就应该听过了mvc,那到底什么是mvc呢?


mcv 是模型(model)-视图(view)-控制器(controller)的缩写  是软件设计的一个规范


Model层属于数据层,用于做数据库的操作,主要是增删查改,在基础的mvc划分中,model层还需要处理数据验证


View为视图层,该层在PHP中的体现一般是模板引擎,不过本人还是建议把该层给js框架,让PHP做接口返回数据,交给客户端进行渲染


Controller控制器层是处理用户与服务器交互的,用户输入url,经过框架的启动,路由分配,最后先到的就是控制器层,控制器层负责了所有有关于用户交互的处理,以及数据逻辑的调用,在基础的mvc划分中,控制器层也用于处理逻辑,处理数据,等等(在不严格规范的情况下,用tp框架可以一个控制器强撸一个网站,这种做法是不建议的)


Logic为逻辑层,用于处理业务逻辑,在严格的mvc划分中,需要将逻辑处理放到logic层去处理,用控制器层进行调用,Logic层可以作为数据验证,以及业务逻辑处理操作


Service为服务层,通俗解释就是为其他层提供服务,该层主要为处理一些数据逻辑的,偏向于逻辑处理,相当于是控制器和模型层的结合,将模型层的简单数据进行再次的逻辑处理


在标准的mvc分层中,每个分层各司其职,单一职责,控制器只负责调度逻辑,服务,模型层,模型层,并不做任何的逻辑,数据处理,只做对客户端的数据获取以及数据输出


举个例子,

在控制器中

M('order')->where(array('user_id'=>1))->find();

显然这是不规范的写法,控制器不负责数据的获取,我们应该把数据的操作交给模型层

/**

 * 获取一条订单

 */

publicfunctionget_order_info($where=array(),$field='*',$order='id desc'){

    $info$this->where($where)->field($field)->order($order)->find();

    return$info;

}

 $info= D('order')->get_order_info(array('user_id'=>1));

这样的写法的好处就是,保证了数据操作的单一路口,以后如果需要改什么的话,直接到model层改动这个方法就行,根本不需要一个一个的去改


这就是我理解的mvc软件设计规范了


目录
相关文章
|
1月前
|
前端开发 JavaScript
MVC中简单数据模型(M): Model类
MVC中简单数据模型(M): Model类
|
4月前
ssm(Spring+Spring mvc+mybatis)Service层实现类——DeptServiceImpl
ssm(Spring+Spring mvc+mybatis)Service层实现类——DeptServiceImpl
|
前端开发
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-service层实现
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-service层实现
63 0
|
前端开发
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-service层实现
java202304java学习笔记第六十三天-mvc的请求-角色列表展示-service层实现
56 0
|
设计模式 前端开发 安全
Spring MVC-01循序渐进之Model 2和MVC
Spring MVC-01循序渐进之Model 2和MVC
55 0
|
前端开发 数据库连接 PHP
symfony框架MVC模式中的Model使用方法
symfony框架MVC模式中的Model使用方法
121 0
symfony框架MVC模式中的Model使用方法
|
前端开发 数据库 计算机视觉
关于MVC中模型model的验证问题
关于MVC中模型model的验证问题
135 0
关于MVC中模型model的验证问题
|
设计模式 前端开发 安全
ModelAndViewContainer、ModelMap、Model、ModelAndView详细介绍【享学Spring MVC】(中)
ModelAndViewContainer、ModelMap、Model、ModelAndView详细介绍【享学Spring MVC】(中)
ModelAndViewContainer、ModelMap、Model、ModelAndView详细介绍【享学Spring MVC】(中)
|
前端开发 Java API
ModelAndViewContainer、ModelMap、Model、ModelAndView详细介绍【享学Spring MVC】(下)
ModelAndViewContainer、ModelMap、Model、ModelAndView详细介绍【享学Spring MVC】(下)
|
前端开发 Java API
ModelAndViewContainer、ModelMap、Model、ModelAndView详细介绍【享学Spring MVC】(上)
ModelAndViewContainer、ModelMap、Model、ModelAndView详细介绍【享学Spring MVC】(上)