- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《MVC框架》.doc
在开始之前需要同学们知道的知识 1.php基础知识 2.单一入口, 不知道的可以看看这里 (/html/webkaifa/PHP/PHP/2009/0819/3199.html) 具备以上两点, 那我们就可以开始啦. 哈哈! 先来说一下程序的执行流程 首先有个入口文件, 然后初始化一些程序, 之后根据请求调用不同的类和方法 首先我们弄一个入口文件 Index.php 来看看代码
复制代码
?php
require Init.php;
$control = new Controller();
$control-Run();
?
代码没什么特别的, 首先先引入Init.php文件 然后实例化一个类 然后调用该类的Run()方法 这里我们把这个类叫做控制器 既然引入了Init.php文件, 那么我们继续看看Init.php文件的源码
复制代码
?php
header(Content-type:text/html;charset=utf-8);
!defined(ROOT_PATH) define(ROOT_PATH, str_replace(\\, /, dirname(__FILE__)));
require ROOT_PATH . /Core/Config.php; //引入配置文件
require ROOT_PATH . /Core/Controller.class.php; //引入控制器类文件
require ROOT_PATH . /Core/View.class.php; //视图类文件
require ROOT_PATH . /Core/Model.class.php; //模型类文件
?
分析一下代码, 如果你懂了, 可以略过这一步, 继续往下看哦. 首先 设置字符集, 然后判断如果没有定义常量ROOT_PATH那么就定义它 然后就是引入一些文件, 首先是配置文件, 控制器类文件, 视图类文件, 模型类文件 同理既然引入了文件,那么我们就打开文件看看代码, 先来看Config.php文件
复制代码
?php
$C = array(
URL_MODE = 1, //URL模式, 1普通模式, 2 PATH_INFO模式
DEFAULT_CONTROL = welcome, //默认调用的控制器
DEFAULT_ACTION = index, //默认执行的方法
);
?
没什么特别的就是一个数组, 有三个值, 暂时先这样, 以后有需要在来增加 那么好, 我们继续看Controll.class.php
复制代码
?php
class Controller
{
public function Run()
{
$this-Analysis(); //开始解析URL获得请求的控制器和方法
$control = $_GET[c];
$action = $_GET[a];
//这里构造出控制器文件的路径
$controlFile = ROOT_PATH . /Controllers/ . $control . .class.php;
if(!file_exists($controlFile)) //如果文件不存在提示错误, 否则引入
{
exit(控制器不存在 . $controlFile);
}
include($controlFile);
$class = ucwords($control); //将控制器名称中的每个单词首字母大写,来当作控制器的类名
if(!class_exists($class)) //判断类是否存在, 如果不存在提示错误
{
exit(为定义的控制器类 . $class);
}
$instance = new $class(); //否则创建实例
if(!method_exists($instance, $action)) //判断实例$instance中是否存在$action方法, 不存在则提示错误
{
exit(不存在的方法 . $action);
}
$instance-$action();
}
/**
* 解析URL获得控制器与方法
*
* @access protected
* @return void
*/
protected function Analysis()
{
global $C; //包含全局配置数组, 这个数组是在Config.ph文件中定义的
if($C[URL_MODE] == 1) //如果URL模式为1 那么就在GET中获取控制器, 也就是说url地址是这种的[url=http://lo
您可能关注的文档
- 《c510索尼手机评测》.doc
- 《CAD室内设计施工图规范》.doc
- 《CAD计算机辅助设计》.doc
- 《CAD课程设计》.doc
- 《CAE技术在汽车覆盖件冲压成形中的应用》.doc
- 《CAN-Bus_汽车总线技术(中文)》.doc
- 《CATIA (初级)培训资料》.doc
- 《CATTI三级笔译必看笔译三级考前黄金讲义》.doc
- 《CAXA电子图板培训教程》.doc
- 《CC++实训作业总结报告模板》.doc
- 《MVC模式的基本概念 》.doc
- 《MyBatis Spring整合示例》.doc
- 《MyBatis+Spring整合示例》.doc
- 《MyEclipse(Struts+Spring+Hibernate)入门实例(赠送)》.doc
- 《MyEclipse8.5_开发_SSH_(Struts2 Spring Hibernate)示例-完整丰富版》.doc
- 《MyEclipse8.5整合(Struts2+Spring+Hibernate)》.doc
- 《MyEclipse_8.6.1_搭建_Struts2.1+Spring3.0+Hibernate3.3_图解》.doc
- 《MyEclipse_搭建_Struts2.1+Spring3.0+Hibernate3.3_图解》.doc
- 《MySQL的B2C电商系统前端数据层架构》.doc
- 《newGMAT作文黄金80题范文》.doc
最近下载
- 推拿学试题库(附参考答案).docx VIP
- 探讨平台经济下灵活就业人员的劳动权益保护问题.docx VIP
- 重症患者的营养支持PPT.ppt VIP
- 南瑞集团-水轮发电机组状态监测整体解决方案.pdf VIP
- 第二单元第1课《山水相逢》课件2025-2026学年人美版(2024)八年级美术上册 (1).pptx VIP
- 标准图集-华北-08BJ6-1地下工程防水1.pdf VIP
- 第2课 中国人首次进入自己的空间站(1课时)-课件(共23张PPT).pptx VIP
- 物业项目经理面试的53个经典问题(附参考答案).doc VIP
- 《观赏植物介绍》课件.ppt VIP
- 水电站碾压混凝土施工工法--rcc工法.doc VIP
文档评论(0)