CodeIgniter: «Невозможно загрузить запрошенный класс» - PullRequest
18 голосов
/ 06 ноября 2011

На своем WAMP я сделал следующее:

  1. Добавил файл с именем /application/libraries/Foo.php
  2. Foo.php - это класс, и его имяis Foo
  3. В /application/config/autoload.php я добавил $autoload['libraries'] = array('foo');

Все отлично работает.Когда я загружаю в свой блок LAMP, я получаю следующую ошибку:

Unable to load the requested class: foo

Разрешение /application/libraries/Foo.php равно 0755. Владелец такой же, как и остальныефайлы CI.Извлечение foo из автозагрузки устраняет проблему.

Есть идеи, что может быть не так?

Ответы [ 3 ]

42 голосов
/ 06 ноября 2011

В Windows заглавные буквы в путях не имеют значения. В Linux это так.

Когда вы загружаете авто, используйте «Foo», а не «foo».

Я верю, что это поможет.

Я думаю, что это работает, когда вы берете его из автозагрузки, потому что codeigniter достаточно умен, чтобы вычислить заглавные буквы в пути, и классы не зависят от регистра в php.

3 голосов
/ 27 апреля 2017

У меня была похожая проблема при развертывании из OSx на моем локальном сайте Linux.

На OSx все работало нормально, но в Linux я получал:

An Error Was Encountered

Unable to load the requested class: Ckeditor

Проблема заключалась в том, что пути Linux, по-видимому, чувствительны к регистру, поэтому мне пришлось переименовать файлы библиотеки из «ckeditor.php» в «CKEditor.php».

Я также изменил свой запрос на загрузку, чтобы он соответствовал заглавной буквы:

$this->load->library('CKEditor');
0 голосов
/ 01 октября 2013

Если вы используете сервер linux для своего приложения, то для избежания этой проблемы необходимо использовать имя файла и имя класса в нижнем регистре.

Пример.

Имя файла: csvsample.php

class csvsample {

}
...