源代码SVN地址 https://svn.sinaapp.com/ci123/
codeigniter 目录如下
CodeIgniter 根目录
│
├─application 应用程序
│ ├─cache 缓存文件
│ ├─config 配置文件
│ ├─controllers 控制器(C)
│ ├─core 核心 --- 这里自己定义的class能对ci的核心class进行覆盖 ---也可以写成对核心class扩展
│ ├─errors 错误页面
│ ├─helpers 帮助函数
│ ├─hooks 钩子文件
│ ├─language 语言
│ │ └─english
│ ├─libraries 扩展库
│ ├─logs 日志
│ ├─models 模型(M)
│ ├─third_party 第三方库
│ └─views 视图(V)
├─system ci核心系统
│ ├─core 核心类
│ ├─database 数据库
│ │ └─drivers 数据库驱动
│ │ ├─cubrid
│ │ ├─mssql
│ │ ├─mysql
│ │ ├─mysqli
│ │ ├─oci8
│ │ ├─odbc
│ │ ├─pdo
│ │ ├─postgre
│ │ ├─sqlite
│ │ └─sqlsrv
│ ├─fonts
│ ├─helpers 帮助函数
│ ├─language 语言
│ │ └─english
│ └─libraries 扩展库
│ ├─Cache 扩展驱动
│ │ └─drivers
│ └─javascript 自带jquery
├─user_guide 使用手册
│
├─ index.php 单一入口文件
│
└─ license.txt 开源协议
然后精简下 取出核心部分 如下
CodeIgniter 根目录
│
├─application 应用程序
│ ├─cache 缓存文件
│ ├─config 配置文件
│ ├─controllers 控制器(C)
│ ├─models 模型(M)
│ └─views 视图(V)
├─system ci核心系统
│ ├─core 核心类 (主要分析这个)
│ └─database 数据库
│ └─drivers 数据库驱动
│ ├─cubrid
│ ├─mssql
│ ├─mysql
│ ├─mysqli
│ ├─oci8
│ ├─odbc
│ ├─pdo
│ ├─postgre
│ ├─sqlite
│ └─sqlsrv
│
└─ index.php 单一入口文件
再次精简,拿出需要阅读的部分
CodeIgniter 根目录
│
├─system ci核心系统
│ ├─core 核心类 (主要分析这个)
│ └─database 数据库
└─ index.php 单一入口文件
从core 以及index.php 开始阅读
列出core的类清单 list
Benchmark.php 对程序执行的标记 主要是为了检测程序性能
CodeIgniter.php 入口调用 整个系统运行加载的流程
Common.php 核心中常用函数
Config.php 操作加载配置文件
Controller.php 控制器
Exceptions.php 异常处理
Hooks.php 钩子
Input.php 输入
Lang.php 语言
Loader.php 加载 class file ...
Model.php 模型
Output.php 输出
Router.php 路由
Security.php 安全过滤
URI.php uri识别
Utf8.php utf8转码
整个结构,下节写入口文件 index.php