该文延续上篇文章: 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 的几乎所有配置,让用户在开发或者发布的时候,配置不同的信息。
时间: 2024-10-12 21:52:08