У меня есть проект Laravel, который отлично работает локально (Mavericks), но классы под psr-4 не загружаются на наш сценический сервер (CentOS). Я получаю ошибку Reflection «класс не найден» каждый раз, когда пытаюсь обновить композитор или запускаю команду artisan.
Все мои классы, специфичные для приложения, хранятся в моем проекте Laravel в app / heatherland, например:
app/heatherland/import/ImportJob.php (file contains HeatherLand\Import\ImportJob)
Мой composer.json содержит эту запись:
"autoload": {
"classmap": [
"app/commands",
...
"app/database/seeds",
],
"psr-4": {
"HeatherLand\\": "app/heatherland"
}
},
Локально классы psr-4 добавляются в массив в vendor / composer / autoload_classmap.php. Они не добавляются в этот файл на сервере сцены. Если я вырезал и вставил их вручную, команды мастера работают правильно, но при следующем запуске команды композитора файл автозагрузки будет перезаписан. В autoload_psr4.php как на локальном, так и на рабочем месте есть следующая запись, которая мне нравится:
'HeatherLand\\' => array($baseDir . '/app/heatherland'),
Вот список вещей, которые я пробовал / проверял:
- Регистр в именах классов, папок и файлов является согласованным и правильным.
- Я широко использовал composer dump-autoload с параметром -o и без него
- Я могу запустить composer update с параметром --no-scripts нормально, но artisan по-прежнему не запускается
- Имена папок в нижнем регистре,
, и я попытался изменить их, чтобы отразить регистр пространств имен(редактировать: этого никогда не было, по крайней мере, не успешно). - Я попытался удалить CamelCase из своего пространства имен (например, изменив его на Heatherland), и ни в одной из моих папок / имен файлов нет подчеркивания.
- Я использую PHP 5.4.30, и композитор обновлен. Версии идентичны на моей локальной установке и на сценическом сервере. Laravel 4.1.30.
- Нет дубликатов composer.phar ни в одной из систем
Любые новые советы приветствуются. На данный момент я был бы очень рад, если бы сделал что-нибудь глупое.
"HeatherLand\\Import\\":"app/heatherland/import"
для этого префикса пространства имен. - person Sven   schedule 26.08.2014