CI框架浅析(二)
该文延续上篇文章: 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');
}
从代码可以知道:
CI框架浅析(二)的更多相关文章
- CI框架浅析
CI框架浅析(全篇) 业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很 ...
- CI框架浅析(全篇)
业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包 ...
- CI框架浅析(一)
CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而“优雅”的工具包,它可以为开发者们建立功能完善的 Web 应用程序.本人使用CI框架有一段时间了,现在决定把 ...
- ci框架(二)
自定义SQL语句 当提供的API满足不了我们对S ...
- 初学后台框架总结篇二——快速了解CI框架
一.下载CI框架并安装,这里放置一张自己的项目目录结构图 目录框架搭建好之后开始将自己的项目与框架融合 二.更改相关配置 1.用任何文本编辑器打开 application/config/config. ...
- 二十七、CI框架之自己写分页类并加载(写分页还是有难度,搞了一整天)
一.我们写好自己的分页代码,防止library目录中,带构造函数 二.在模型中,添加2个函数,一个是查询数据的条数,第二个是取出数据库中的数据 三.在控制中,写入相应的代码,如下: 四.在界面中,写入 ...
- PHP CI 框架简单使用(二)
我们简单认识一下CI框架的MVC.示例代码如下 //CI控制器文件Home.php <?php defined('BASEPATH') OR exit('No direct script acc ...
- 第一天ci框架开发商城1
ci框架开发商城1 1/28/2016 9:43:52 PM userguide删除 system application controllers 控制器 models 模型 views 视图 模板 ...
- CI框架,源代码一次性判断获取post(get)数据是否有某个字段值为空方法
一.以下是CI框架 1.把所有的要接收的字段放在数组中 例: 我要接收:id,name,age,mobile 等字段 $req = array('id','name','age','mobile'); ...
随机推荐
- 每天一个Linux命令(02)--cd命令
Linux cd 命令可以说是Linux中最基本的命令语句,其他的命令语句都要进行操作,都是建立在使用 cd命令基础上的. 所以,学习Linux常用命令,首先就要学好 cd 命令的使用技巧. 1.命令 ...
- JavaScript中的函数使用
append() 是代表改变格子的内容 prev()是代表前一个格子 next()是代表下一个相邻的格子 hide()是代表隐藏 show()是代表显示 childen()是代表子节点 eq()是代表 ...
- JVM——深入分析对象的内存布局
概述 一个对象本身的内在结构需要一种描述方式,这个描述信息是以字节码的方法存储在方法区中的.Class本身就是一个对象,都以KB为单位,如果new Integer()为了表示一个数据就占用KB级别的内 ...
- PetaPoco 快速上手
今天来给大家分享一个好用的轻型的.net框架的ORM——PetaPoco 本着快速上手的原则,我们通过和EF对比,让大家能快速使用PetaPoco PetaPoco大家可能没有听说过,但大家一定听说过 ...
- 测试不同格式下depth buffer的精度
这篇文章主要是参考MJP的“Attack of The Depth Buffer”,测试不同格式下depth buffer的精度. 测试的depth buffer包含两类: 一是非线性的depth b ...
- Microsoft Visual Studio 2017 安装过程
工欲善其事必先利其器 Visual Studio 2017 正式版官方下载地址:https://www.visualstudio.com/downloads/ 安装vs2017的时候最好关闭已打开的v ...
- 计算机程序的思维逻辑 (74) - 并发容器 - ConcurrentHashMap
本节介绍一个常用的并发容器 - ConcurrentHashMap,它是HashMap的并发版本,与HashMap相比,它有如下特点: 并发安全 直接支持一些原子复合操作 支持高并发.读操作完全并行. ...
- python + selenium <三>
sql 数据库连接 引用pymssql模块 import pymssqldef getDB(name,psw,dbname,sql): conn=pymssql.connect(HOST=host,N ...
- NodeJs中process.cwd()与__dirname的区别
process.cwd() 是当前执行node命令时候的文件夹地址 ——工作目录,保证了文件在不同的目录下执行时,路径始终不变__dirname 是被执行的js 文件的地址 ——文件所在目录 Node ...
- javascript中构造StringBuffer实例
function StringBuffer(){ this.strings = new Array; } StringBuffer.prototype.append=function ...