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

求救,我真的不懂MVC

求救,我真的不懂MVC

PHP
拉莫斯之舞 2019-03-04 19:45:11
想請問 php 的 mvc原理是什麼?我百思不得其解呀~?這真的好複雜!我是傳統php 寫法,就是HTML php mysql 都在同一頁,如何轉到mvc不吃力?
查看完整描述

12 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

简单说一下MVC, 首先说一下层次定义:

  • 视图(View):用户界面。
  • 控制器(Controller):业务逻辑
  • 模型(Model):数据保存

其次,看图好说话。
https://img1.sycdn.imooc.com//5c8f511400014b1208000295.jpg

最后,上面的大神们官话都说的很多了,我来用白话说说MVC的关系。打个比方,你现在的工作HTML php mysql 都在同一頁, 就好比一个家庭厨房,客人点餐(view), 你接单(Controller), 你做菜(Model), 你摆盘上菜(view)都是你一个人完成的。有错吗?对于家庭厨房来说显然没有。然后新年到了,之前平均每天就5个客人点菜,过年这天突然有100个人点菜,你懵逼了,眼看着大把大把的钱赚不到啊,累得跟粑粑一样,就做了10个客人。怎么办!你决定拼爹了,找了老爸投资100万。于是,你请了美女小花前台负责招待客人(view),你有了自动点餐系统(Controller),你请了1个打杂的负责切菜(Model1),你请了1个厨师负责油炸食品(Model2),你请了1个厨师负责面点(Model3),你清了1个厨师负责炒菜(Model4), 然后你就了一个高效的餐馆结构:

  • 客人甲点菜,美女小花通过电子点餐平台下单:炸丸子, 小笼包,腊肉唐芹,红烧肉。
  • 于是,油炸师傅开始做炸丸子
  • 于是,面点师傅开始做小笼包
  • 于是,炒菜师傅开始抄腊肉唐芹,红烧肉
  • 没有于是,打杂师傅依旧不停的在准备各种配料爱谁谁
  • 客人乙点菜,美女小花又蹦蹦跳跳的去下单了:炸春卷,炸丸子,炸饺子
  • 于是,油炸师傅疯了,累成了粑粑
  • 于是,面点师傅跟炒菜师傅跟在外面抽烟休息看着油炸师傅累成了粑粑
  • 没有于是,打杂师傅依旧苦逼的不停的在准备各种配料爱谁谁

这就是MVC的基本核心意义:各司其职。 粗狂的说,在成开发流程中:做前端的就负责view,做后端的就负责Controller,做数据的就负责Model。 至于如果是个人做开发该怎么办?简单:框架,框架,框架!好的框架能让你更好的理解MVC的结构,重塑开发习惯,延伸开发思维方式。

我个人对php框架的推荐:

  • Codeigniter 这个算是PHP MVC框架的爷爷,国内好几个框架都是山寨这个的。这个适合第一次接触MVC的用户,这个逻辑非常清晰适合初学者。
  • Laravel 适合中高级的php程序猿,好用到爱不释手,把程序猿从繁重的配置工作中抽离。
查看完整回答
反对 回复 2019-03-18
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

mvc不是什么原理。是一种分类。

程序员在长期的开发中发现,程序可以分为这几个部分:控制器C负责居中调度,模型M负责数据存储,视图V负责数据展示。

就形成了 mvc

查看完整回答
反对 回复 2019-03-18
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

不光是PHP,在其它编程语言中,MVC也是一样的原理,即Model、View、Controller,用户所有的请求访问都交由Controller负责,它调度Model(数据模型)View(视图),然后把组装好数据的View返回给用户,这样做的好处是一套Model可以用于不同的ViewViewModel不必知道对方的存在,它们不用耦合在一起。具体的可以找一些小例子研究一下。

查看完整回答
反对 回复 2019-03-18
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

过一年你就懂了!

查看完整回答
反对 回复 2019-03-18
?
慕容708150

TA贡献1831条经验 获得超4个赞

用框架写个项目,你就能理解了

查看完整回答
反对 回复 2019-03-18
?
慕容3067478

TA贡献1773条经验 获得超3个赞

HTML php mysql 都在同一页
当这一页需要修改的时候,你有感觉吃力吗
有的话试试 一些PHP框架 应该就可以理解了

查看完整回答
反对 回复 2019-03-18
  • 12 回答
  • 0 关注
  • 412 浏览

添加回答

举报

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