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

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

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

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

Unable to load the requested class: foo

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

Какие-нибудь идеи, что может быть неправильным?

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

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

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

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

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

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

 An Error Was Encountered Unable to load the requested class: Ckeditor 

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

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

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

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

Ex.

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

 class csvsample { }