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

CI框架浅析(二)的更多相关文章

  1. CI框架浅析

    CI框架浅析(全篇)     业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很 ...

  2. CI框架浅析(全篇)

        业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包 ...

  3. CI框架浅析(一)

            CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为开发者们建立功能完善的 Web 应用程序.本人使用CI框架有一段时间了,现在决定把 ...

  4. ci框架(二)

    自定义SQL语句                                                                             当提供的API满足不了我们对S ...

  5. 初学后台框架总结篇二——快速了解CI框架

    一.下载CI框架并安装,这里放置一张自己的项目目录结构图 目录框架搭建好之后开始将自己的项目与框架融合 二.更改相关配置 1.用任何文本编辑器打开 application/config/config. ...

  6. 二十七、CI框架之自己写分页类并加载(写分页还是有难度,搞了一整天)

    一.我们写好自己的分页代码,防止library目录中,带构造函数 二.在模型中,添加2个函数,一个是查询数据的条数,第二个是取出数据库中的数据 三.在控制中,写入相应的代码,如下: 四.在界面中,写入 ...

  7. PHP CI 框架简单使用(二)

    我们简单认识一下CI框架的MVC.示例代码如下 //CI控制器文件Home.php <?php defined('BASEPATH') OR exit('No direct script acc ...

  8. 第一天ci框架开发商城1

    ci框架开发商城1 1/28/2016 9:43:52 PM userguide删除 system application controllers 控制器 models 模型 views 视图 模板 ...

  9. CI框架,源代码一次性判断获取post(get)数据是否有某个字段值为空方法

    一.以下是CI框架 1.把所有的要接收的字段放在数组中 例: 我要接收:id,name,age,mobile 等字段 $req = array('id','name','age','mobile'); ...

随机推荐

  1. C#中运算符的应用

    c#中的运算符(只说我自己熟悉和常用的)一.算数运算:加 +减 -乘 *除 / (整型的除法是不算小数点的,也就是说结果是整数,余数舍去了,求余数看下面)求余数 % 加减乘好理解,整型的除法和求余数因 ...

  2. css样式表1 2017-03-11

    样式表 DIV + CSS 一.        样式表的分类 以下均以div标签为例,可以换成其他标签 1.  内联样式表 格式: style="属性1:属性值1:属性2:属性值2:属性3: ...

  3. 【RecyclerView与Glide】实现一个Android电子书阅读APP

    http://www.cnblogs.com/xfangs/ 欢迎在本文下方评论,小方很需要鼓励支持!!! 本系列教程仅供学习交流 小说阅读器最终实现效果见 第一篇博文 前言 在上一篇文章中,我们实现 ...

  4. Struts2中Action配置的三种方式

    <!-- 方案一:一个action对应一个方法; --> <action name="add" class="com.gxxy.struts.kp03_ ...

  5. 提问!同一ajax请求获取的图片路劲,在谷歌浏览器能正确展示图片,在火狐浏览器则显示路径undefined

    今天的工作学习之路遇见一个奇葩的问题,作为初级攻城狮的小生实在不知如何解决,都已经壁咚度娘一整天了,都未能解决问题,实属无奈,一开始认为是浏览器兼容的问题,但左看右看,也不是,也尝试过是不是页面加载与 ...

  6. Visual Studio 2017 新特性

    全新的安装体检 VS2017更好的支持了按需安装的特点,用户可以仅选择需要的功能安装,节省了不少的Disk 最小的安装仅有几百兆,但也支持20多种编程语言的编辑和源码管理 支持创建自定义的离线安装包 ...

  7. kvm的sshd起不来

    同事不知道在一台KVM虚拟机执行了chmod -R 777 /  将更目录中的所有文件的权限都改为777,重启该虚拟机之后发现该虚拟机登不上去了,来找我,我尝试重启了几次虚拟机之后,发现总是可以被pi ...

  8. CognitiveJ一个Java的人脸图像识别开源分析库

    CognitiveJ 是一个开源的,支持 Java 8 API 的库,用于管理和编排 Java 应用和微软的Cognitive(Project Oxford)机器学习和图像处理库的项目,可以让你查询以 ...

  9. 【原】Linux设备网络硬件管理

    遇到网络问题时候,一般情况下,我们第一反应是查找软件方面问题,但排查之后,软件没有问题的时候,我们就需要排查硬件方面工作是否正常. 我们可能需要查询网卡设备本身的状态,查询网卡是否有数据包发送接收: ...

  10. JDBC连接数据库实现删除功能

    这次同样运用之前写过的部分代码进行改变,实现一个删除功能,这个功能很好添加,表单中只要form一个参数到DeleteServlet中,所以重点的代码还是在DeleteServlet中实现业务逻辑. 我 ...