这是一个加载视图和文件的类. __construct() 设置视图文件的路径,和获取输出缓冲级别. initialize() 该方法只会被CI_Controller调用一次,会调用 $this->_ci_autoloader(); 自动去加载 config/autoload.php 中设置的类. library() 该方法用来调用 system/libraries 路径下的可用的工具库,比如 FTP Class, Encryption Library等.主要是被应用控制类调用. model()…
这篇文章主要介绍CI核心框架工具类CI_Security. 安全类包含了一些方法,用于安全的处理输入数据,帮助你创建一个安全的应用.以下选取类中的重点方法进行说明. __construct() 在构造函数中,取出配置中csrf_expire,csrf_token_name,csrf_cookie_name的值,赋给类成员变量.接着,设置$this->_csrf_hash的值.如果cookie中存在csrf_cookie_name变量,则将值赋给$this->_csrf_hash,如果不存在,则…
这篇文章主要介绍CI核心框架工具类CI_Router. 如果说CI_URI类是用来解析URI,那么CI_Router类就应该是根据解析出来的URI来决定究竟访问哪一个文件和哪一个function. 详细步骤: 1.导入CI_Config和CI_URI类作为资源: 2.调用其中的_set_routing()方法,在该方法中首先把用户在config目录中设置的route.php的$route路由数组取出来: 3. 调用_parse_routes()方法,路由数组中的值和键可以利用正则表达式,甚至可以…
这篇文章主要介绍CI核心框架工具类CI_URI. 该类主要用来解析uri和决定路由的.关于URI和URL的关系请参考这位朋友的文章.简单来说URI是唯一定位的资源,URL是唯一资源的一个网络可能访问路径.所以从这个角度来看,作者在定义类名的时候还是非常严谨的,因为由于解析路由的存在,同一个资源可能有多个访问路径. 1.__construct() 该构造函数,主要针对enable_query_strings=true的情况作出一些处理. 举例说明: 1)当值为true时候,URL为:http://…
这篇文章主要介绍CI核心框架工具类CI_Lang. 根据CI文档自己的定义,该类用来: 提供相关的函数,用于检索语言文件和文本行,以便国际化. 以下选取类中的重点方法进行说明. __construct() 在构造函数,没有进行任何操作,只是打印日志,说明该类已经初始化. load($langfile, $idiom = '', $return = FALSE, $add_suffix = TRUE, $alt_path = '') 加载语言包中的文件. line($line, $log_erro…
这篇文章主要介绍CI核心框架工具类CI_Input. 根据CI文档自己的定义,该类用来: 提前处理全局变量,以保证安全; 提供一些帮助函数用来处理输入数据. 以下选取类中的重点方法进行说明. __construct() 在构造函数,根据定义,用来决定是否开启全局的XSS处理和是否允许$_GET数组. 调用函数$this->_sanitize_globals();来清理,$_GET,$_POST,$COOKIE,$_SERVER['PHP_SELF']中的数据.主要用来检测键名和键值是否存在非法字…
这篇文章主要介绍CI核心框架工具类CI_Output. 根据CI文档自己的定义,这个类主要就是生成返回的页面给浏览器.以下选取类中的重点方法进行说明. __construct() 在构造函数中,主要确定是否对输出内容使用zlib压缩,如果使用会开启gzip压缩功能.另外还有一些细节的处理. _display_cache(&$CFG, &$URI) 两个参数: &$CFG CI_Config类的实例 &$URI CI_URI类的实例 该类先找到访问路径,并且转成md5码: 用…
CI_Utf8类用来对Utf8编码环境提供支持.(Provides support for UTF-8 environments). 从构造函数看,只有当开启了PCRE模式,加载了iconv或者mbstring扩展,配置中定义了该应用使用的是utf8编码的时候,才设置UTF8_ENABLED为TRUE.(这里为什么不用一个类的成员变量来定义呢?从搜索该关键词在框架中使用结果来看,多为判断直接通过该全局变量判断,省去了加载该类的操作,方便使用.) PCRE :PERL兼容正则表达式函数(perl…
该类是一个超级大的父类,它将在 CodeIgniter.php 中实例化化过的类,通通加载成它的类成员变量,所以可以方便的进行各种操作.各种应用控制器类,都会继承 CI_Controller 类. __construct() 在该类中,首先加载在 CodeIgniter.php 实例化过的类为成员变量. 接着加载 CI_Loader类,并调用 CI_Loader->initialize() 进行初始化操作.关于该类,可以参考CI_Loader类分析. 该类,会初始化 library, help,…
这篇文章学习CI框架的钩子特性. hooks是CI框架提供的一种机制,允许你在程序框架运行流程的某个阶段执行你自己的一些代码.比如系统运行前,CI_Controller调用前,系统运行结束后等特定的时间节点,执行自定义的函数.如同官方所言,CodeIgniter 的钩子特性提供了一种方法来修改框架的内部运作流程,而无需修改 核心文件. hooks的逻辑主要写在system/core/Hooks.php的CI_Hooks类中.框架在Codeigniter.php中载入该类. /* * ------…