最近打算学习PHP框架,才发现我以前对MVC的认识很肤浅。但是看Laravel的文档,对MVC又是云里雾里的
C和V是人机界面,C是人机界面的功能部分,V只是呈现形式,把它从图形换成命令程序还能跑,只不过不直观而已。一方面M是供C调度的资源,另一方面M是程序中与人机交互不直接相关的部分,它往往需要C来驱动,但是一经驱动就可以独立运行。很多时候大家谈论MVC时都矮化了M,认为它只是对数据的封装,是静态的,其实这只在逻辑较简单的情况下才成立,这时候似乎可以把逻辑都塞进C中。但是一般情况下,相比于M,C是很轻的,因为它只负责人机交互,而M则是程序的主体部分。
MVC M--模型,一般是跟数据库打交道的。 V-输出给前端用户的。 C-控制器,用于流程控制,主要是协调M和V的。
顾客到餐厅点菜,顾客点好了,服务员要告诉传菜员,传菜员再告诉后厨。 M--菜 V--服务员(菜单) C--传菜员
M(菜)应该直接跟后厨打交道,那么后厨就是项目里的Service了。
另外:一些比较low的餐厅,会把服务员和传菜员当作一个人来用。 这就是JAVA项目里的,在JSP里写业务逻辑的作法。
有些更low的餐厅,只有一个老板,这个老板身兼服务员、传菜员、后厨。。 这就是JSP里写数据操作的作法。
所以高级餐厅里,会有各种各样的角色,细分至极。提高效率,提高可维护性。这就是为嘛大餐厅实习生多的原因了。
老板说,想看一下这个月的销售情况。这是一个请求。于是你(C)接受了这个请求,要公司各业务部门(M)提供这个月的所有销售数据,然后把这些数据做一下简单整理交给了老板助理(V)。老板助理用这些整理好的数据按部门做成图表饼图呈交给老板看。
view:处理用户请求 controller:处理前端请求,发起数据库请求 model:处理数据库请求
view: 展示页面 controller:处理逻辑 model: 处理数据
mvc的关键,就是路由!!!,路由不懂???就是拆分url地址,剩下的那些,等你写过几个controller的增删该查就渐渐明白了
所以研究mvc,研究路由,就是拆url地址,打完收工!
C和V是人机界面,C是人机界面的功能部分,V只是呈现形式,把它从图形换成命令程序还能跑,只不过不直观而已。一方面M是供C调度的资源,另一方面M是程序中与人机交互不直接相关的部分,它往往需要C来驱动,但是一经驱动就可以独立运行。很多时候大家谈论MVC时都矮化了M,认为它只是对数据的封装,是静态的,其实这只在逻辑较简单的情况下才成立,这时候似乎可以把逻辑都塞进C中。但是一般情况下,相比于M,C是很轻的,因为它只负责人机交互,而M则是程序的主体部分。
MVC
M--模型,一般是跟数据库打交道的。
V-输出给前端用户的。
C-控制器,用于流程控制,主要是协调M和V的。
顾客到餐厅点菜,顾客点好了,服务员要告诉传菜员,传菜员再告诉后厨。
M--菜
V--服务员(菜单)
C--传菜员
M(菜)应该直接跟后厨打交道,那么后厨就是项目里的Service了。
另外:一些比较low的餐厅,会把服务员和传菜员当作一个人来用。
这就是JAVA项目里的,在JSP里写业务逻辑的作法。
有些更low的餐厅,只有一个老板,这个老板身兼服务员、传菜员、后厨。。
这就是JSP里写数据操作的作法。
所以高级餐厅里,会有各种各样的角色,细分至极。提高效率,提高可维护性。这就是为嘛大餐厅实习生多的原因了。
老板说,想看一下这个月的销售情况。这是一个请求。于是你(C)接受了这个请求,要公司各业务部门(M)提供这个月的所有销售数据,然后把这些数据做一下简单整理交给了老板助理(V)。老板助理用这些整理好的数据按部门做成图表饼图呈交给老板看。
view:处理用户请求
controller:处理前端请求,发起数据库请求
model:处理数据库请求
view: 展示页面
controller:处理逻辑
model: 处理数据
mvc的关键,就是路由!!!,路由不懂???就是拆分url地址,剩下的那些,等你写过几个controller的增删该查就渐渐明白了
所以研究mvc,研究路由,就是拆url地址,打完收工!