2017-02-06 8 views
1

У меня есть простой 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

+0

Вы выполнили «компоновку установки» на сервере после копирования вашего проекта? Если вы скопируете файлы, в том числе папку поставщика, выполните 'comper dump', чтобы обновить автозагрузчик. –

+0

Вы разрабатываете в Windows и небрежны в случае имен файлов? –

+1

В качестве побочного элемента вы не должны передавать каталог своего поставщика. Это должно автоматически генерироваться через 'comper install' для каждого развертывания. Вы должны совершить свой 'composer.lock', если он есть. – apokryfos

ответ

5

настраивается следующим образом:

"Core\\": "Core/", 

... но ваши классы по адресу:

core 

Это будет работать только в случае, если нечувствительных файловых систем.

+0

Спасибо @ Álvaro, что вызвало у меня столько неприятностей. Есть ли стандарт, который я должен соблюдать с точки зрения именования папок и файлов? Я новичок в развитии, и я пытаюсь научиться хорошей практике. – IMO

+0

Есть PSR-4. Вы уже используете его ;-) –

+0

Огромное спасибо, я прочитаю документы на этот раз :) ... много, чтобы узнать! – IMO