25

codeigniter项目核心类实例

创建核心系统类

每次 CodeIgniter 运行时,都有一些基础类伴随着核心框架自动的被初始化。但你也可以使用你自己类来替代这些核心类或者扩展这些核心类。

大多数用户一般不会有这种需求,但对于那些想较大幅度的改变 CodeIgniter 的人来说,我们依然提供了替换和扩展核心类的选择。

注解

改变系统核心类会产生很大影响,所以在你做之前必须清楚地知道自己正在做什么。

系统类清单

以下是系统核心文件的清单,它们在每次 CodeIgniter 启动时被调用:

  • Benchmark
  • Config
  • Controller
  • Exceptions
  • Hooks
  • Input
  • Language
  • Loader
  • Log
  • Output
  • Router
  • Security
  • URI
  • Utf8

替换核心类

要使用你自己的系统类替换默认的系统类只需简单的将你自己的文件放入目录 application/core 下:

如果这个目录不存在,你可以创建一个。

任何一个和上面清单中同名的文件将被替换成核心类。

要注意的是,你的类名必须以 CI 开头,例如,你的文件是 Input.php,那么类应该命名为:

扩展核心类

如果你只是想往现有类中添加一些功能,例如增加一两个方法,这时替换整个类感觉就有点杀鸡用牛刀了。在这种情况下,最好是使用扩展类的方法。扩展一个类和替换一个类的做法几乎是一样的,除了要注意以下几点:

  • 你定义的类必须继承自父类。
  • 你的类名和文件名必须以 MY_ 开头。(这是可配置的,见下文) Continue reading
25

CI框架目录结构分析

 

2013050900240734

 

18

VAR_FILTERS设置为htmlspecialchars会造成提交的数组数据失败

VAR_FILTERS

全局系统变量,设置默认过滤方法,可对GET POST提交的变量名进行过滤。

可设置为VAR_FILTERS=>”htmlspecialchars”,但是这种设置会过滤掉如这种(<input type=”radio” name=”setting[content]” />)形式提交的变量名setting[content],造成提交后获取不到setting。

所以个人感觉,如果没有绝对必要的情况,VAR_FILTERS变量还是默认为空。