该文延续上篇文章: CI 框架浅析(一)
在 CI 框架的核心库中,CodeIgniter.php 负责加载所有需要的类库,第一个加载的是公共库 core/Common.php
Common.php 负责加载以下公共方法:
方法名 | 注释 |
is_php($version) | 判断 $version 是否小于或等于当前安装的 PHP 版本 |
is_really_writable($file) | 判断该文件是否可写 |
load_class($class, $directory ='libraries', $param = NULL) | 加载类,但只能加载前缀为 CI 的类,或前缀为自己配置的 $config['subclass_prefix' |
is_loaded | 返回已经加载类的数组 |
get_config(Array $replace = array()) | 加载 application/config/config.php 配置数组 application/config/ENVIRONMENT/config.php ENVIRONMENT 为你开发的环境 |
config_item($item) | 获取配置项的具体一项值 |
get_mimes() | 获取 config/mimes.php 的元数据数组 |
is_https() | 判断是否是 https 加密协议 |
is_cli() | 判断是否是在命令行执行 |
show_error() | 加载 Exception,在自己的模板输出错误,然后 exit |
show_404($page ='', $log_error = TRUE) | 加载 Exception,在自己的模板输出 404 错误 |
log_message($level, $message) | 输出日志信息 (不要把 config.php 的 log_threshold 变量设 置为 4,太卡了,消耗太多的性能) |
set_status_header($code = 200, $text ='') | 设置 http 回应状态头 |
_error_handler( ) | 错误处理,加载 Exceptions 类,然后用日志输出错误,如果是验证的错误,则 exit(1) 退出程序。 |
_exception_handler($exception) | 异常处理,加载 Exceptions 类,记录异常,然后 exit(1) 退出。 |
_shutdown_handler() | 宕机处理,不同的错误级别做相应的处理,调用_error_handler 方法处理 |
remove_invisible_characters() | 移除不可见的字符 |
html_escape($var, $double_encode = TRUE) | html 转义 |
_stringify_attributes($attributes, $js = FALSE) | 将数组等其它类型,转换成字符串类型。 |
function_usable($function_name) | 方法可用,该方法只是暂时的,后期可能会移除。这方法需要加载 Suhosin (一个 PHP 的补丁或拓展) |
Common.php 中也调用了 Exceptions.php :
方法名 | 注释 |
log_exception($severity, $message, $filepath, $line) | 记录异常信息,保存在日志里 |
show_404($page ='', $log_error = TRUE) | 记录错误的日志,且调用 show_error() 输出错误页面 |
show_error($heading, $message, $template ='error_general', $status_code = 500) | 找到对应的模板,然后输出错误的 html 页面 |
show_exception($exception) | 输出异常的 html 页面 |
show_php_error($severity, $message, $filepath, $line) | 本地 PHP 出错处理,输出相应的错误页面。 |
- if(file_exists(APPPATH.'config/'.ENVIRONMENT.'/constants.php'))
- {
- require_once(APPPATH.'config/'.ENVIRONMENT.'/constants.php');
- }
从代码可以知道:
加载框架的自定义常量,可在 applcation/config 创建不同环境目录,如 development 与 production,在这两个目录下,都创建 constants.php,然后创建各环境需要的常量。从其它的代码总结来,可以根据开发的情况,给予配置不同常量,以及 config 的几乎所有配置,让用户在开发或者发布的时候,配置不同的信息。
来源: http://www.cnblogs.com/xiaoxiaoqingyi/p/6706882.html