CodeIgniter: “Unable to load the requested class”

CodeIgniter: “Unable to load the requested class”就是调用CI框架的library方法的时候,会出现library里面的类加载会不成功。

农成这里就给大家分析下原因,以及解决的方法。

我们先来看下CI这个自定义类库的使用规则及方法:

创建类库

当我们使用 “类库” 这个词的时候,通常我们指的是位于 libraries 这个目录下的那些类, 在我们这份用户手册的类库参考部分有详细的介绍。但是在这篇文章中,我们将介绍 如何在 application/libraries 目录下创建你自己的类库,和全局的框架类库独立开来。

另外,如果你希望在现有的类库中添加某些额外功能,CodeIgniter 允许你扩展原生的类, 或者你甚至可以在你的 application/libraries 目录下放置一个和原生的类库同名的文件 完全替代它。

总结起来:

  • 你可以创建一个全新的类库,
  • 你可以扩展原生的类库,
  • 你可以替换掉原生的类库。

下面将详细讲述这三点。

注解

除了数据库类不能被扩展或被你的类替换外,其他的类都可以。

存储位置

你的类库文件应该放置在 application/libraries 目录下,当你初始化类时,CodeIgniter 会在这个目录下寻找这些类。

命名约定

  • 文件名首字母必须大写,例如:Myclass.php
  • 类名定义首字母必须大写,例如:class Myclass
  • 类名和文件名必须一致

这个是CI官方文档的介绍。地址在这里:http://codeigniter.org.cn/user_guide/general/creating_libraries.html

我们要特别注意下农成上面标红加粗的部分。

就是说可能很多同学创建类库的时候,会犯跟农成一样的错误,就是创建的类库名字大小写没注意。那么现在问题就很明显了。

就是大小写的问题。不是什么linux系统的问题。为什么window下面有时候会调用成功呢?农成这里多说一句,就是window调用我们代码的时候,会有很多的不严谨性,所以CI框架本身很多自身的限制就粗略的带过了。

$this->load->library('upload_image');这个调用的时候,其实不区分大小写的,但是文件类库名字一定要区分大小写,一定要大写。
$ret = $this->upload_image->upload('file');

未经允许不得转载:微信信息发源地 » CodeIgniter: “Unable to load the requested class”

赞 (1)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册