0

想請問 php 的 mvc原理是什麼?我百思不得其解呀~?這真的好複雜!我是傳統php 寫法,就是HTML php mysql 都在同一頁,如何轉到mvc不吃力?

查看全部 12 个回答

0

过一年你就懂了!

推荐答案

10

已采纳

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

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

其次,看图好说话。
图片描述

最后,上面的大神们官话都说的很多了,我来用白话说说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程序猿,好用到爱不释手,把程序猿从繁重的配置工作中抽离。