- 1
- 0
- 约6.4千字
- 约 6页
- 2017-04-29 发布于四川
- 举报
codeIgniter框架基本结构分析【中级教程】【求精】1、index.php入口文件:1)?? 指定 CodeIgniter 框架所在目录;2)?? 定义 APPPATH 常量,指示应用程序文件根目录;3)?? 载入 codeigniter/CodeIgniter.php 文件,启动框架。2、codeigniter/CodeIgniter.php 文件:主要完成初始化 CodeIgniter 框架和启动应用程序两项工作。1)?? 实例化 CI_Benchmark,这个类用于标记应用程序执行消耗的时间;2)?? 载入应用程序的配置文件 require(APPPATH.config/config.EXT);3)?? 实例化 CI_Config,这个类用于将数组封装为可以操作的配置服务;4)?? 实例化 CI_Router,这个类用于分析 URL 请求,确定要执行的控制器和动作;5)?? 实例化 CI_Output,这个类提供输出内容的缓存和检查服务;6)?? 通过 $OUT-_display_cache($CFG, $RTR) 尝试输出缓存内容,如果成功,则结束程序运行;7)?? 判断控制器类定义文件是否存在。如果不存在则通过 show_404() 显示错误信息;8)?? 实例化 CI_Input,这个类提供对 $_GET、$_POST 的访问手段,并封装了一些过滤方法;9)?? 实例化 CI_URI,这个类提供对 URL 的分析、构造服务;10)?? 实例化 CI_Language,这个类提供多语言字符串映射服务;11)?? 载入 codeigniter/Base4.php 或者 codeigniter/Base5.php;12)?? 载入 libraries/Controller.php;13)?? 载入控制器类定义文件;14)?? 实例化控制器类;15)?? 如果控制器使用了 scaffolding 功能,则调用控制器的 _ci_scaffolding() 方法,否则调用控制器动作方法;16)?? 通过 $OUT-_display(); 输出内容($OUT 是 CI_Output 的实例)。详细:
CI_Benchmark这个类很简单,就是用 microtime() 函数记录时间点,并提供 elapsed_time() 方法来计算两个时间点之间消耗的时间。这个类功能不多,但是很实用。CodeIgniter 中大部分类都是这种设计思想,值得称赞!CI_Config这个类其实是在内部维护了一个数组,用来记录应用程序的设置(类似 Windows 注册表)。这种简单的封装可以强制应用程序按照固定的规范访问设置,同时又不将设置保存为全局变量,避免无意中遭到破坏或篡改。CI_RouterCI_Router 功能很单一。CI_Router 首先分析出应用程序当前使用的 URL 模式:PATHINFO 或普通模式。接下来从 URL 地址中分析出控制器名字、动作名以及参数名和参数值。分析的结果保存为 CI_Router 对象实例的成员变量。这里比较有特点的是,CI_Router 可以根据开发者在应用程序设置里面定义的模式来分析 URL,而不是使用某种固定的模式。CI_Output 有两个主要功能:获得应用程序执行的所有输出内容和输出缓存服务。应 用程序执行的输出结果都会保存为 CI_Output 的成员变量。然后根据应用程序设置,CI_Output::_display() 方法会调用 CI_Output::_write_cache() 方法将输出内容缓存起来。下一次当使用 CI_Output::_display_cache() 时如果缓存已经建立了,并且没有过期,则会直接输出缓存内容。在 CI_Output::_write_cache() 中,是根据 URL 地址和 URL 参数来确定缓存 ID 的。因此即便是同一个控制器和动作,只要使用不同的 URL 参数,也会缓存不同的内容。这 个类的功能很简单,因此在许多动态页面是无法使用的。例如用户登录前和登录后,访问同一个控制器和动作并使用相同的 URL 参数,页面内容也有可能是不同的。这时,CI_Output 的缓存就不能使用。因为从本质上来说,CI_Output 提供的缓存是在应用程序之外的,所以应用程序无法根据当前状态来决定是否缓存页面。当一个页面被缓存后,对该页面的访问实际上根本就不会执行应用程序代 码,而是由 CI_Output 取出缓存内容直接就输出了。CI_InputCI_Input 是类似过滤器,并且提供了对 $_GET、$_POST 的封装服务。例如用 CI_Input::post()
您可能关注的文档
- 9年级上册文言文复习要点.doc
- 9年级上册综合性学习复习题2.docx
- 9年级上学期期末考试化学试卷4.doc
- 9年级下4篇中考文言文复习资料.doc
- 9年级下册化学应用广泛的酸碱盐.doc
- 9年级下册英语单词表.docx
- 9年级下册青岛版《数学配套练习册》答案.doc
- 9年级下学期语文周末模拟测试.doc
- 9年级下期英语教学工作总结.doc
- 9型人格短文测试.doc
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 医院医养结合功能区设计方案.docx
- 老年人防诈骗宣传案例分析报告.docx VIP
- 聚羧酸减水剂msds报告.docx
- 个人信用报告模板简版带水印可编辑2025年9月新版.pdf VIP
- QBNM-PS-0001—2019 汽车车身油漆涂层标准.pdf VIP
- 2025铁路旅客列车餐饮服务卫生规范.pdf VIP
- 奉节脐橙电子商务发展中存在的问题及对策研究.docx VIP
- 城中村改造建设项目可行性研究报告.docx VIP
- 2024党员围绕“学习贯彻党的创新理论、党性修养提高、联系服务群众、党员发挥先锋模范作用、铸牢中华民族共同体意识方面”5个方面组织生活会发言材料多篇.docx VIP
- 《养老之女性篇》课件.pptx VIP
原创力文档

文档评论(0)