В моем ящике WAMP я сделал следующее:
Foo
$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 { }