文档介绍:北风网PHPCMS二次开发
URL与MVC
讲师:胖龙(北风网版权所有)
剖析PHPCMS
PHPCMS的默认URL规则
访问栏目首页:
http://your_url/?m=content&c=index&a=lists&catid=6
访问内容页:
http://your_url/?m=content&c=index&a=show&catid=1&id=9
访问公告页:
http://your_url/?m=announce&c=index&a=show&aid=4
访问搜索结果页:
http://your_url/?m=search&c=index&a=init&typeid=1&q=a&siteid=1&time=all
默认URL规则:
URL访问规则
http://my_url/ 网站URL
PHPCMS入口程序
?m=xxxx PHPCMS模块名称
&c=xxxx 模块控制器名称
&a=xxxx 行为名称
其他参数
根据URL定位控制器程序文件
程序定义文件位置:
PHPCMS安装路径/phpcms/modules/模块名称/
PHPCMS的运行过程:
加载控制器定义文件
实例化使用“控制器名称”作为定义名称的对象
执行实例化后的控制器对象的,使用“行为名称”作为定义名称的方法。
?m=content&c=index&a=show&catid=1&id=9
include ‘phpcms/modules/’;
$obj = new content();
$obj->index();
MVC——什么是MVC
MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:
(M)模型 Model
(V)视图 View
(C)控制器 Controller
它们各自处理自己的任务。
模型
响应状态查询
更新数据
视图
发送用户输入给控制器
将程序结果展示给用户
控制器
定义应用程序业务流
根据用户动作调用模型
根据用户动作调用视图
查询数据
更新数据
调用视图
用户请求
获取数据
MVC——视图
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。
MVC——模型
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
MVC——控制器
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
MVC——优点
大部分用过程语言比如ASP、PHP开发出来的Web应用,初始的开发模板就是混合层的数据编程。例如,直接向数据库发送请求并用HTML显示,开发速度往往比较快,但由于数据页面的分离不是很直接,因而很难体现出业务模型的样子或者模型的重用性。产品设计弹性力度很小,很难满足用户的变化性需求。MVC要求对应用分层,虽然要花费额外的工作,但产品的结构清晰,产品的应用通过模型可以得到更好地体现。