我初学时也曾对MVC这个概念相当模糊,但找实习一般都会问:MVC是什么呀?你怎么理解MVC呀?
无奈,只能背下来:M是模型model,用于数据处理,V是试图view,用于展示页面,C是控制器controller,用于进行逻辑处理。。。
后来工作一段时间之后,才对MVC的应用有一点简单的认知。
我们写一个页面,目的是输出一句话:'good good study,day day up!',那么,我们可以新建一个index.php文件,里面写下:
Document<?php echo 'good good study,day day up!'; ?>
这样,我们的目的就实现了,在这儿,需要所谓的MVC么?不需要!
但是,如果我们需要做一个有很多功能的网站,我们怎么办呢,也像这样一个php文件对应着实现一个网站页面的所有功能?
这个时候,我们就需要对此进行一个技术上的分离(MVC):
假如有一个页面:localhost/article/5,这个页面的作用是展示id为5的文章相关内容,那么,在C(控制层Controller)中,我们需要实现这个请求的逻辑处理,那么请求的逻辑是什么呢:
/*
第一步:获取到文章的id,$id = $_GET['article'];
第二步:获取文章内容,M->get('article',$id);
第三步:展示文章内容,show($data)
*/
M(模型model)层的作用是数据处理,那么,我们可以在M层连接数据库进行一些数据查询处理,然后在C层调用M层的方法获取到我们需要的数据,然后展示出来!
V(试图view)层的作用是展示页面,我们在C层接收到M层处理好的数据,然后这些数据通过V层的一些方法展示到试图模板中的指定位置,然后展示到浏览器!
这么看起来,真是麻烦诶!
可是仔细想一想,如果在一个大项目中,没有合理的结构约束,全是混乱无序的代码,那么以后我们怎么维护?而且一个项目通常是多人合作开发,如果是混乱的代码结构,那么怎么合作?
没有时间了,先写这些,将就看看