CI版本:2.2.0
我在 /CI220/application/libraries/MY_Security.php 创建了一个文件 配置文件我设置
$config['subclass_prefix'] = 'MY_';
我发现它没有加载MY_Security,我的MY_Controller正在加载,但不是这个库。下面是我的Call Stack Log:
Call Stack
# Time Memory Function Location
1 0.0004 242064 {main}( ) ../index.php:0
2 0.0009 244352 require_once( '/Users/User/Sites/CI220/system/core/CodeIgniter.php' ) ../index.php:202
3 0.0091 478200 load_class( ) ../CodeIgniter.php:213
4 0.0096 489872 CI_Input->__construct( ) ../Common.php:174
5 0.0097 491432 CI_Input->_sanitize_globals( ) ../Input.php:103
6 0.0232 499224 CI_Security->csrf_verify( ) ../Input.php:647
7 0.0233 499432 CI_Security->csrf_show_error( ) ../Security.php:149
我没有从Security加载我的扩展库。我想覆盖csrf_show_error函数
public function csrf_show_error()
{
show_error('The action you have requested is not allowed.!!!');
}
答案 0 :(得分:3)
安全类位于system / 核心 /Security.php
电子邮件类位于system / library /Email.php
您可以参考此链接获取核心课程: http://www.codeigniter.com/user_guide/general/core_classes.html
核心类总是自动加载,因此您也不需要包含在自动加载中。
答案 1 :(得分:0)
感谢@Svetlio的回答
libraries / MY_Security.php是必须在核心文件夹中的错误路径>芯/ MY_Security.php
由于此页面,我感到很困惑。 http://www.codeigniter.com/user_guide/general/creating_libraries.html
扩展本地库
如果您只需要为现有库添加一些功能 - 也许添加一两个功能 - 然后用您的版本替换整个库是有点过分的。在这种情况下,它更简单 扩展课程。扩展一个类几乎与替换一个类相同 除了几个例外的课程:
类声明必须扩展父类。你的新课 名称和文件名必须以MY_为前缀(此项目为 可配置的。见下文。)。例如,扩展本机电子邮件 您将创建一个名为application / libraries /MY_Email.php的文件, 并宣布你的班级:.....
感谢您的回答,所以如果您发现库文件夹无效,可以尝试核心文件夹。