PHP中使用MVC--《细说PHP阅读笔记》
为了解决一类共同问题总结出来的一套可复用的解决方案,这是软件设计模式产生的初衷。不管是客户端还是移动端,MVC的分层设计模式解决了软件开发中的可复用、单一职责、解耦的问题,PHP语言中的MVC设置模式也是如此。
本文通过PHP语言来说明MVC模式如何在PHP中应用,内容包括:
MVC的工作原理
PHP开发框架
开发框架的优势
使用框架进行模块划分
一个简单MVC框架的分析
URL访问方式(URLParser)
控制器(Controller)
视图(View)
模型(Model)
运行时(Runtime)
MVC的工作原理MVC框架图:
MVC框架图视图View代表用户交互的页面、可以包含HTML界面、Smarty模板等和界面相关的元素。MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的点击、拖动等事件的处理,而不包括在视图上的业务流程处理。业务流程会交给模型层(Model)处理。
模型Model模型层是对业务流程、状态的处理以及业务规则的指定。业务流程的处理过程对其他层来说是黑箱操作,模型接受视图的请求处理数据,返回最终的处理结果。业务模型还有一个很重要的模型--数据模型,数据模型主要指实体对象的数据保存(持久化)。比如将一张订单保存到数据库,从数据库获取订单,所有和数据库相关的操作限定在该模型中。
控制器Controller控制层是View层和Model层之间的一个桥梁,接收到用户的请求,将模型和视图匹配在一起,共同完成用户的请求。比如,用户点击一个链接,控制层接收到请求后,把信息传递给模型层,模型层处理完成之后返回视图给用户。
PHP开发框架开发框架的优势框架提高开发效率和质量
框架处理了许多基础性工作
框架处理细节工作(事务处理、安全、数据流控制)
框架结构性好、扩张性好
框架划分子问题,易于控制、易于延展、易于分配资源
使用框架进行模块划分一个典型的后台应用模块的划分
平台操作管理
登录管理
操作界面管理
系统管理频道
常规管理
公告管理
友情链接挂你
内容管理频道
图片管理
栏目管理
文章管理
幻灯片管理
用户管理频道
用户组管理
用户管理
模块设置操作
每个模块可以设置查看、添加、修改、删除、搜索等操作
模块太大应该划分子模块,适合的模块数量为8~12个
一个简单MVC框架的分析分析基于《细说PHP》书中提供的框架BroPHP,从以下五个方面来分析
URL访问方式(URLParser)
控制器(Controller)
视图(View)
模型(Model)
运行时(Runtime)
URL访问方式URL使用PATHINFO模式(index.php/index/index/),应用的访问方式都是采用单一入口的访问方式,所有访问一个应用中的具体模块及模块中的某个操作,都需要在URL中通过入口文件后的参数来访问和执行,所有访问都会变成由URL的参数来统一解析和调度,格式如下:
不带参数的URL