Подтвердить что ты не робот

CodeIgniter: "Не удалось загрузить запрошенный класс"

В моем поле WAMP я сделал следующее:

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

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

Unable to load the requested class: foo

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

Любые идеи, что может быть неправильным?

4b9b3361

Ответ 1

В Windows капитализация в путях не имеет значения. В Linux это происходит.

При автозагрузке используйте "Foo" не "foo".

Я считаю, что это сделает трюк.

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

Ответ 2

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

Он отлично работал на OSx, но в Linux я получал:

An Error Was Encountered

Unable to load the requested class: Ckeditor

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

Я также изменил вызов загрузки для соответствия капитализации:

$this->load->library('CKEditor');

Ответ 3

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

Исх.

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

class csvsample {

}