CI框架源码分析
这几天,把ci源码又看了一遍,于是有了新的收获。明白了在application目录下core文件夹的作用,就是用来写ci核心文件的扩展的,
而且需要在配置文件中添加类前缀MY_。
CI框架整体是但入口文件,入口文件是Index.php在该文件中定义了一些系统变量,比如BASEPATH和
APPPATH等,最后加载ci框架的核心文件CodeIgniter文件,该文件位于system文件夹下的core文件夹下,此文件夹是ci的核心文件,包括了
controller,model,router,config等文件,codeigniter文件中会对这些核心文件进行调用。
在核心w文件controller中,又把这些文件作为自己的属性调用,就有了我们在控制器中看到的$this->load形式的调用,还有$this->config形式的调用。
核心文件load是用来加载各种文件的,像model文件,view层的文件。
在核心文件中还有一个benchmark类,用来计算脚本执行的时间和所占用的内存。以前没有注意到,现在感觉特别好用!
其他的像helper和libraries下的一些文件了。
实际这就是mvc的设计模式了,也是php框架的通用模式,只是ci框架算是比较轻量级的框架而已。
在看ci框架的时候看到一个好用的函数array_map,就是统一对数组进行操作,说起如何看源代码,还是从网上汲取了很多的经验:
比如:框架的效率,安全,以及框架所用到的设计模式等,获益匪浅。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述