Index.php作为CI框架的入口文件,源码分析,自然而然由此开始。在源码分析的过程中,我们并不会逐行进行解释,而只解释核心的功能和实现,如果英文水平很好的话,读过index.php文件的英文注释之后也就基本明白了inde.php都做了些什么。本来想第一篇写解析CI框架的目录结构的,像这一般网上一搜都是一大堆,也就放弃了这个想法。博主是基于CodeIgniter-v3.1.0最新版本进行解读分析。ok,书归正传,在博主看来CI框架的index.php文件一共完成了四项工作:
① 设置框架应用的环境状态
② 配置系统、应用、视图等程序目录以及得到其路径
③ 系统、应用、视图等目录的正确性验证
④ 载入 core/CodeIgniter.php框架核心文件,启动框架
1、设置框架应用的环境状态
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');
这里的development可以是任何你喜欢的环境名称(比如working,再如debug),相对应的,你要在下面的switch case代码块中,对设定的环境做相关的错误等级控制。(CI框架设置了三种应用场景状态,分别是:development(开发),testing(测试),production(产品)。development(开发)状态,也就是默认的状态下会产生错误报告,testing(测试),production(产品)状态下则不会产生错误报告)否则,CI框架会认为你没有配置好相应的环境,从而退出进程并给出对应的错误信息:
default:
//header() 被用来发送自定义的 HTTP 报文。关于HTTP报文的更多信息请参考php手册
header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);echo 'The application environment is not set correctly.';exit(1);
之所以一定要配置配置ENVIRONMENT?这是因为,CI框架中很多组件都依赖于ENVIRONMENT的配置,例如,查看system/c