mvc - php中的Model到底扮演什么角色
阿神
阿神 2017-04-10 13:12:14
[PHP讨论组]

一直在用MVC模式编程,突然对其中Model层的定义有些疑惑,要说其它两层把,一个负责展现的视图,一个负责流程的控制,清晰明了,但是其中的Model又指的什么呢?

从字面上理解,都称其为模型层,什么是模型?大多数Model的定义就像这样

class User extends Model
{
    public function add(array $user)
    {
        // 新增代码
    }

    public function delete($id)
    ...
}

Model难道只是个对数据库增删查改接口的封装吗?还有些人认为,Model应该是对数据表的映射,它难道是一种ORM的实现?

阿神
阿神

闭关修行中......

全部回复(3)
ringa_lee

假设:除了网页展现之外,你还需要写CLI脚本做数据库的数据统计。你会怎么设计你的Model同时满足网页展现和数据统计两个任务?

再假设:你现在用的是MySQL。有一天你需要用PosgreSQL,甚至要开始使用NoSQL。你会怎么设计你的Model让你的总体代码修改量最小?

回答了这两个问题,我觉得你的问题就解决了。

怪我咯

如果按照目前流行的 api 和restful api 接口的 前后端分离的架构.

那么php 已经基本沦为数据源提供, 那么 mvc中 php 只处理 model 就是crud 然后 php c 负责调度和处理逻辑 拼装数据. v已经没有了

前端js 还要在分 mvc 前端model 负责接收数据 同时也负责一些为了页面显示的数据的拼装.

直接总体就变成 mcmvc

而且随着前端的发展,针对事件机制的框架 例如mvvm结构 实际变成了mcmvvm

如果后端是nosql 可能就是mmvvm c也不太需要了. 一些逻辑也放到前端了.

PHP中文网

我的理解 模型存在 可以为多个 controller(控制器) 共享调用

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号