研究CI执行过程
注明:CI版本为2.1.3
执行步骤:
载入system/core/Common.php 通用函数库
载入application/config/constants.php 系统常量
定义异常处理方式:set_error_handler('_exception_handler')
加载一些常用类(URI、HOOKS、UTF8等)
路由分析:根据传入的url解析需要调用的控制器和其中的方法
载入system/core/Controller.php(Controller父类,所有控制器类都继承它)
判断通过路由分析出来的控制器类和要调用的方法,如果控制不存在,则跳转到404页面
实例化控制器类和执行要调用的函数
判断数据库连接是否创建,如已创建则关闭
涉及内置函数
error_reporting:
// 关闭所有错误显示
error_reporting(0);
// 显示基本错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// 显示所有错误除了E_Notice
error_reporting(E_ALL ^ E_NOTICE);
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
chdir 改变当前目录
pathinfo 返回路径信息
strrchr — 查找指定字符在字符串中的最后一次出现
注明:CI版本为2.1.3
执行步骤:
载入system/core/Common.php 通用函数库
载入application/config/constants.php 系统常量
定义异常处理方式:set_error_handler('_exception_handler')
加载一些常用类(URI、HOOKS、UTF8等)
路由分析:根据传入的url解析需要调用的控制器和其中的方法
载入system/core/Controller.php(Controller父类,所有控制器类都继承它)
判断通过路由分析出来的控制器类和要调用的方法,如果控制不存在,则跳转到404页面
实例化控制器类和执行要调用的函数
判断数据库连接是否创建,如已创建则关闭
PS:写得不是很细致,如果其中有什么步骤漏掉了,或者描述错误,请指出。
=========================================
虽然有手册可查,但还是自己mark一下,加深印象涉及内置函数
error_reporting:
// 关闭所有错误显示
error_reporting(0);
// 显示基本错误
error_reporting(E_ERROR | E_WARNING | E_PARSE);
// 显示所有错误除了E_Notice
error_reporting(E_ALL ^ E_NOTICE);
// Report all PHP errors (see changelog)
error_reporting(E_ALL);
error_reporting(-1);
// Same as error_reporting(E_ALL);ini_set('error_reporting', E_ALL);
chdir 改变当前目录
pathinfo 返回路径信息
strrchr — 查找指定字符在字符串中的最后一次出现