3

我有一个CodeIgniter应用程序,在我的本地笔记本电脑(Windows 7)上运行良好。我已将文件上传到远程服务器,现在出现错误 Unable to load the requested class: itemblocklibrary

加载库的代码:

$ci =& get_instance();
$ci->load->helper('member_area_helper'); // works
$ci->load->library('itemBlockLibrary'); // dies here

该文件位于远程服务器上:/www/case/project/application/libraries/itemBlockLibrary.php

我试过了:

echo 'Have you seen ' . APPPATH . 'libraries/itemBlockLibrary.php? <br/>';
echo (file_exists(APPPATH . 'libraries/itemBlockLibrary.php') ? 'Yes sir, it does exists!' : 'No sir, can\'t find it');

输出:

Have you seen application/libraries/itemBlockLibrary.php? 
Yes sir, it does exists!

和:

  • 使用小写$ci->load->library('itemblocklibrary');-> 相同的错误
  • 加载另一个库 - >同样的错误
  • 三重检查文件是否存在 (FTP) -> 是否存在
  • 检查文件夹和文件权限。(文件夹:755,文件:644;与 helpers 文件夹相同)

有人可以帮我保持头发吗?;)

4

1 回答 1

1

我怀疑您的服务器是某种 Linux 风格,并且您遇到区分大小写的问题。您的文件使用驼峰式名称itemBlockLibrary.php,并且正在转换为所有小写和大写首字母,以便CI_Loader类在目录中找到匹配的文件。

从 Loader 类中,_ci_load_class函数:

// We'll test for both lowercase and capitalized versions of the file name
foreach (array(ucfirst($class), strtolower($class)) as $class)

更改文件名以使用 CI 约定

  • 文件名必须大写。例如:Myclass.php
  • 类声明必须大写。例如:类 Myclass
  • 类名和文件名必须匹配。

查看自定义库类的文档。

在您的情况下,您需要将文件命名为MY_itemblocklibrary.php(或您在配置文件中设置的任何前缀),然后将其加载为:

$this->load->library('MY_itemblocklibrary');
于 2013-03-09T20:32:55.617 回答