CI核心类
来源:互联网 发布:开实体店淘宝进货 编辑:程序博客网 时间:2024/06/05 11:57
CI中对
核心类、
辅助类,
辅助函数
的扩展是相当方便的,
配置文件中指定了subclass_prefix扩展前缀,默认为MY_,扩展时需要以该配置为前缀,下面整理下扩展方式。
1、扩展核心类
核心类位于system/core下,其中大部分类会在初始化的时候自动加载。扩展核心类的方式有两种:
替换核心类和继承核心类。
替换核心类
当application/core目录下存在与system/core同名的文件时会自动替换掉核心类。以Loader.php为例,当创建application/core/Loader.php后会自动加载该类,由于该类为系统核心类,
所以,如果Loader.php未实现CI_Loader类中的方法则会报错。
替换核心类需要重写其中的所有方法,以免影响核心功能。
但大部分时候并不需要重写整个核心,基本上只是增加某些方法,这个时候可以采取继承的方式。
继承核心类
继承核心类需要以subclass_prefix为前缀,如扩展Input类,
需创建application/core/MY_Input.php,
并且MY_Input需要继承CI_Input类,如:
class
MY_Input
extends
CI_Input
{
function
_clean_input_keys(
$str
)
{
$config
= &get_config(
'config'
);
if
( ! preg_match(
"/^["
.
$config
[
'permitted_uri_chars'
].
"]+$/i"
, rawurlencode(
$str
))) {
exit
(
'Disallowed Key Characters.'
);
}
// Clean UTF-8 if supported
if
(UTF8_ENABLED === TRUE) {
$str
=
$this
->uni->clean_string(
$str
);
}
return
$str
;
}
}
2、扩展CI类库(辅助类)
system/libraries下实现了一些辅助类,当有需要扩展这些类时,和核心类的处理方式是一样的,
只不过目录变成了application/libraries
如MY_Log扩展来自Log
经过扩展的该类会自动加载,无需手动加载!!!
3、扩展辅助函数
辅助函数存放于application/helpers目录下,
CodeIgniter 默认是没有载入辅助函数文件的;
你如果想 "扩展"一个原有的 Helpers,,可以在你的 application/helpers/ 目录下创建一个新的helper,
新的helper的名字是在被“扩展”的Helper的名字开头多加一个 MY_
并添加或重写(override)其中的一些方法
需要手动加载
注意:区别清楚你要扩展的类是核心类还是辅助类。
转载:http://pengbotao.cn/codeigniter-extension.html
- CI核心类
- 【ci框架】扩展系统的核心类
- 【ci框架】自定义扩展的核心控制器类MY_Controller
- CI框架(二)自定义扩展的核心控制器类MY_Controller
- CI---扩展核心类controller, 实现登录控制
- ci高级用法篇之扩展核心类
- CI框架源码完全分析之核心文件(输入类)Input.php
- CI框架源码完全分析之核心文件(安全类)Security.php
- CI框架源码完全分析之核心文件(输出类)Output.php
- CI框架源码完全分析之核心文件(UTF8类)Utf8.php
- CI框架源码完全分析之核心文件(URI类)URI.php
- ci核心导入input类BUG将json数组中的数字转成了字符串
- CI框架源码完全分析之核心文件(输入类)Input.php
- ci框架,分页类,不修改核心源码的情况下,伪静态如何处理
- CI框架 -- 核心文件 之 Benchmark.php
- CI框架源码完全分析之核心文件Codeigniter.php
- CI框架源码完全分析之核心文件Codeigniter.php
- CI 输入类input
- NOJ1071数字的空洞——水题
- 指针知识梳理1-变量基本定义及使用
- 在VC++中读写INI文件
- Spark源码分析之-Storage模块
- 平板电脑系统更新后文件丢失怎么办
- CI核心类
- easyui struts后台实现tree返回json数据
- nodejs+ express+jade 图片显示例子
- 彻底解决iOS7状态栏隐藏的问题(以及setStatusBarHidden:YES不起作用问题)
- EasyUI tree扩展获取实心节点
- 玩风暴英雄美服减低延迟不掉线与内测获取方式
- iOS 获取手机的型号,系统版本,软件名称,软件版本
- mini木马原理
- 误删了的硬盘文件怎样恢复呢