web-dev-qa-db-ja.com

CodeIgniter-要求されたクラスをロードできません

はい、私はあなたがこの質問が重複の可能性があると言うことを考えていると想像しますが、同様の質問に対する回答が私が現在抱えている問題を解決しないためではありません。

次のように「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);
    }
7
max_

ユーザーガイド によると、ファイル名とクラス名の大文字化が問題だと思います。

  • phppass.phpPhppass.php
  • class phpassclass Phpass
29
jleft