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‘);
}

从代码可以知道:

加载框架的自定义常量,可在applcation/config 创建不同环境目录,如development 与production,在这两个目录下,都创建constants.php,然后创建各环境需要的常量。从其它的代码总结来,可以根据开发的情况,给予配置不同常量,以及config 的几乎所有配置,让用户在开发或者发布的时候,配置不同的信息。

时间: 2024-10-12 21:52:08

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

ci框架(二)

自定义SQL语句                                                                             当提供的API满足不了我们对SQL语句的要求的时候,我们通常是自己来写SQL语句,CI也提供了比较强大了,能够满足我们需求的一般的sql的API. $res=$this->db->select('id,name') ->from('表名') ->whrer('id >=',5)//注意id后面要有个空格 -&

CI框架浅析(全篇)

业余花了点时间看看CodeIgniter框架(简称CI),CI目前的稳定版本是 3.X,4.0版本已经出来了,但还在测试中,所以我分析的还是 3.x 版本. CI是一个很轻便的框架,整个下载包也就2M多,而且使用起来方便快捷,适用于一些简单的功能开发,以及做app 接口. 该框架整个流程图如下: li.li1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Hannotate SC" } span.s1 { } span.s2 { }

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

一.我们写好自己的分页代码,防止library目录中,带构造函数 二.在模型中,添加2个函数,一个是查询数据的条数,第二个是取出数据库中的数据 三.在控制中,写入相应的代码,如下: 四.在界面中,写入代码 五.我们打开浏览器,就可以看到CI框架的分页已经被我们替换掉了,如图: 总结: 大家可以看到,目前我自己比较好用的一个分页类在CI中可以正常使用,但是翻页之后,是用的 [ ?page=6 ]这种形式来呈现的,和CI还是不符合,我们后续改进一下分页类的写法,符合CI的规范. 原文地址:https

PHP CI 框架简单使用(二)

我们简单认识一下CI框架的MVC.示例代码如下 //CI控制器文件Home.php <?php defined('BASEPATH') OR exit('No direct script access allowed'); //为了防止用户直接通过文件路径来访问控制器,可以有效的防止跨站攻击 class Home extends CI_Controller{ //继承CI控制类,必须存在的 public function __construct(){ parent::__construct();

GreenDao开源ORM框架浅析

Android程序开发中,避免不了要用到数据库,我们都知道android提供了内置的Sqlite,即调用SQLiteOpenHelper的方法,来操作数据库,但是使用过程较为繁琐,从建表到对表中数据的正删改查操作,需要大量的代码来建立表,和完成这些操作. GreenDao居然是ORM框架,它跟hibernate是很像的,就是当你配置了一些参数信息之后,可以由框架来帮你生成对应的实体类,还有生成对应的操作实体类的代码(自动建表和基本的增删改查). 优点: 1.最大性能(最快的Android ORM

CI框架

一.CI介绍 小巧,快速, 天下武功,无坚不破,唯快不破. Ci还是很受欢迎的. 学习CI还有一个好处,相比其他的一些php框架,更容易掌握.(源码和思想) 二.CI快速入门 1.获取与安装 直接上官网下载http://codeigniter.org.cn/ 将下载好的文件解压打网站根目录, 在页面中直接访问,输入如http://localhost/citest 看到此界面,表示安装成功.So easy! 2.定义自己的控制器和视图 在编写代码之前,要明确,我们的代码写在什么地方? 其中user

php CI框架基础知识

一. CI框架的MVC导图 二. CI框架目录文件介绍 (1)index.php  单入口         整个框架对外暴露的唯一访问文件 (2)application  应用文件(放置用户信息,用户控制器.用户模板等) application/cache            --->   缓存 application/config            --->   配置文件 application/controllers        --->   控制器 application/

ci框架(一)

ci目录结构                                                                                    |-----system 框架程序目录 |-----core 框架的核心程序 |-----CodeIgniter.php 引导性文件 |-----Common.php 加载基类库的公共函数 |-----Controller.php 基控制器类文件:CI_Controller |-----Model.php 基模型类文件

MVC框架浅析(基于PHP)

MVC框架浅析(基于PHP) MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面 显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑.MVC被独特的发展起来用于 映射传统的输入.处理和输出功能在一个逻辑的图形化用户界面的结构中. 一.MVC概念 MVC 是一种使用 MVC(Model View Contr