【问题标题】:CodeIgniter - unable to load requested classCodeIgniter - 无法加载请求的类
【发布时间】:2013-05-14 08:20:31
【问题描述】:

是的,我想您是想说这个问题可能是重复的,但这并不是因为类似问题的答案并不能解决我目前遇到的问题。

我在自动加载名为“phpass”的库时收到以下错误,如下所示。

遇到错误 无法加载请求的类:Phpass

自动加载库的代码

$autoload['libraries'] = array('database', 'phpass');

phpass.php 文件位于 application/libraries 文件夹中,该类被声明为 class phpass 这意味着该问题与我遇到的大多数其他答案中建议的大小写或文件路径无关.

你能告诉我我错过了什么吗?它在 MAMP 中完美运行,但是,当上传到我的 Linux Ubuntu 服务器 (Apache2) 时,它停止工作。

谢谢,

最大。

Edit---Utku要求的构造方法

class phpass {

    protected $PasswordHash;

    // default values if config was not found
    protected $iteration_count_log2 = 8;
    protected $portable_hashes = FALSE;

    /**
     * Construct with configuration array
     * 
     * @param array $config
     */
    public function __construct($config = array()) {
        // check if the original phpass file exists
        if (!file_exists($path = dirname(__FILE__) . '/../vendor/PasswordHash.php')) {
            show_error('The phpass class file was not found.');
        }

        include ($path);

        if (!empty($config)) {
            $this->initialize($config);
        }

        // create phpass object
        $this->PasswordHash = new PasswordHash($this->iteration_count_log2, $this->portable_hashes);
    }

【问题讨论】:

  • Linux 区分大小写,windows 不区分,你是用它的类名“phpass”而不是“Phpass”
  • 我排除了文件名导致的错误,并且我在 Mac 上运行,而不是在 Windows 上运行,因此使用 MAMP 而不是 WAMP。
  • 错误告诉我们它在寻找“Phpass”而不是 phpass
  • 是的,但考虑到我正在使用的代码,这是不可能的。我没有在我的代码中的任何地方调用Phpass,只有phpass
  • 你能把 phpass.php 文件的第一行粘贴到它的构造器可见的地方吗

标签: php codeigniter autoload


【解决方案1】:

我认为你的文件名和类名的大写是问题,根据user guide

  • phppass.php 应该是 Phppass.php
  • class phpass 应该是 class Phpass

【讨论】:

  • 是的,太棒了。谢谢@lefters!
  • 完全没问题@max_!我很高兴这有帮助!
猜你喜欢
  • 2011-12-23
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 2018-07-20
  • 1970-01-01
  • 2016-05-06
相关资源
最近更新 更多