为了账号安全,请及时绑定邮箱和手机立即绑定

PHP MVC框架中modeL的作用

PHP MVC框架中modeL的作用

POPMUISE 2019-03-02 10:03:41
PHP MVC框架中modeL的作用
查看完整描述

2 回答

?
临摹微笑

TA贡献1982条经验 获得超2个赞

MVC概念来自传统的桌面软件开发,在那样的环境下,事件发生时,Model可以主动通知View,而这在HTTP协议里是不可能的(长连接comet除外啊)。长期以来,PHP业界对MVC框架中M和C的理解和运用都是不精细的(当然,够用就好,能满足绝大多数业务了)。这导致MC分层不清,PHPer在写代码的时候没有明确的规则,到底业务逻辑放在C里还是M里,常见的问题有:

C层承担职责过多,如,赞一个答案是给对应回答者加声望,写到C里面去了

M层太单薄,就继承一下框架的Model(或者DB类),实现数据库的增删查改

非数据库操作(如调用微博OpenAPI)只好包装到Util类

用户输入($_GET,$_POST)全局乱跑,M层和Util里都有

由于大部分场景下,PHP都用来做Web应用,而且是Database Driven Application,所以,各类Database Driven的快速开发框架也应运而生,比如说,CakePHP的Model类干脆就定义了CURD几个针对数据表的操作,Qcodo直接根据数据表结构自动生成MVC三层的脚手架代码。

我理解的PHP应用是5层结构,M层应再拆分为Biz Model,DAO,Infrastructure,贴几幅图片:



查看完整回答
反对 回复 2019-03-09
?
慕少森

TA贡献2019条经验 获得超9个赞

在一些小型项目中,完全可以舍弃Model层,但是大项目中,会有分工合作的。模型负责跟DB的交互,控制器就可以用户动作提交判断、调用不同的model,最后想用户返回结果。后期维护也会非常方便。

查看完整回答
反对 回复 2019-03-09
  • 2 回答
  • 0 关注
  • 813 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信