用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2487|回复: 4
收起左侧

[讨论/交流] 手册中的创建核心类是不是有误?

[复制链接]
发表于 2011-2-16 11:18:30 | 显示全部楼层 |阅读模式
手册地址:http://codeigniter.org.cn/user_guide/general/core_classes.html

手册中是这样写的:
替换核心类
要使用你自己的系统类替换默认类只需简单的将你自己的 .php 文件放入本地文件夹 application/core
application/core/some-class.php
如果这个文件夹不存在你可以自己创建一个.
只要你自定义的文件名与默认的完全一样,它就会自动替换原有的类.
要注意的是你自定义的类必须以CI作为前缀,例如你自己建立了Input.php类的名字必须是:
class CI_Input {

}


上面红色的字我的理解是如果我在application中的core建一个input类,类的文件名和system中的一样。哪么ci就会自动调用我的这个类?
于是我做如下操作:

1.我把system中的input.php拷贝到application中的core里面。
2.修改_clean_input_data这个方法 return trim($str);

保存之后我输入一个字符串打印发现并没有生效,于是我把类的文件名和类名改成MY_input.php。上面的修改就生效了。

发表于 2011-2-16 17:07:18 | 显示全部楼层
是bug,目前2.0无视app目录的非MY_的替换类库,问题在function load_class()
楼主可以自己修改下(foreach的数组顺序),或者等老外更新
发表于 2011-2-16 17:10:49 | 显示全部楼层
是的,目前采用扩展的方式解决
 楼主| 发表于 2011-2-17 10:50:25 | 显示全部楼层
回复 2# visvoy


    不知道老外啥时候更新
发表于 2011-2-17 20:36:30 | 显示全部楼层
其实修改很容易的,把system/core/Common.php 130行的BASEPATH和APPPATH调换一下就解决了

本版积分规则