2013-05-19 27 views
7

Tak, wyobrażam sobie, że myślisz, że to pytanie jest możliwym duplikatem, jednak nie jest tak, ponieważ odpowiedzi na podobne pytania nie rozwiązują problemu, który aktualnie mam.CodeIgniter - nie można załadować żądanej klasy

Otrzymuję następujący błąd podczas automatycznego ładowania biblioteki o nazwie "phpass" w następujący sposób.

Wystąpił błąd Nie można wczytać żądanej klasy: Phpass

kodu do autoload bibliotekę

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

Plik phpass.php znajduje się w folderze aplikacji/bibliotek a klasa jest zadeklarowana jako class phpass, co oznacza, że ​​problem nie może być związany z dużymi literami ani ścieżką do pliku, jak sugerowano w większości innych odpowiedzi, na które natknąłem się.

Proszę, możesz mi powiedzieć, czego mi brakuje? Działa to doskonale w MAMP, jednak po załadowaniu na mój serwer Linux Ubuntu (Apache2) przestaje działać.

Dzięki,

Max.

Edit --- metoda konstruktora wymagane przez 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); 
    } 
+2

Linux rozróżnia wielkość liter, okna nie, czy używasz nazwy klasy "phpass", a nie "Phpass" –

+0

Wykluczyłem błąd będący wynikiem nazwy pliku, a ja używam Maca, a nie okien, dlatego używam MAMP nie WAMP. –

+0

Błąd mówi nam, że szuka "Phpass", a nie phpass. –

Odpowiedz

25

myślę kapitalizacja nazwy pliku i nazwę klasy jest kwestia, według user guide:

  • phppass.php powinny być Phppass.php
  • powinno być class Phpass
+0

Tak, genialny. Dzięki @lefters! –

+0

To musi rozwiązać problem. –

+0

Nie ma problemu w ogóle @max_! Cieszę się, że pomogło! – jleft

Powiązane problemy