У меня есть простой PHP веб-приложение со следующей структурой:Композитора autoload.php не загружается в пространствах имен и классах на живом хостинг
/ (composer.json .htaccess ...)
/Core/ (Router.php, Controller.php ...)
/App/ (/Controllers, /Models, /Views ...)
/Public/ (index.php ...)
/Vendor/ (autoload.php /composer ...)
Кода работает без проблем на моем локальном сервере.
Когда я копирую его на живой сервер и вношу необходимые изменения в .htaccess в пути, я получаю следующую ошибку: Неустранимая ошибка: Class 'Core \ Router' не найдена .... Я пробовал 3 разных хоста но не повезло.
Проблема, похоже, связана с функцией автозагрузки композитора, не загружаемой в пространствах имен и классах с использованием psr-4. Я этот набор в моем composer.json файле:
{
"autoload": {
"psr-4": {
"Core\\": "Core/",
"App\\": "App/"
}
}
Код для моего проекта на GitHub в
https://github.com/imoprojects/upbook
Я новичок в программировании в структуре MVC, а также с использованием композитор таким образом.
Если бы кто-нибудь мог помочь с тем, что может произойти, я был бы очень признателен.
Приветствия, Ian
Вы выполнили «компоновку установки» на сервере после копирования вашего проекта? Если вы скопируете файлы, в том числе папку поставщика, выполните 'comper dump', чтобы обновить автозагрузчик. –
Вы разрабатываете в Windows и небрежны в случае имен файлов? –
В качестве побочного элемента вы не должны передавать каталог своего поставщика. Это должно автоматически генерироваться через 'comper install' для каждого развертывания. Вы должны совершить свой 'composer.lock', если он есть. – apokryfos