Мне нужно обсудить очень важную вещь для меня (вероятно, для всех пользователей, которые используют композитор в своих проектах). Я работаю над Laravel. Всякий раз, когда я работаю на своей локальной машине, я запускаю обновление композитора после добавления новой библиотеки вендора.
Теперь он отлично работает на локальной машине. Но когда я загружаю эти файлы на мой сервер, он выдает ошибку типа «Undefine class ….». Я не знаю, как запустить команду обновления composer на сервере (также это может быть небезопасно).
Так что я могу просто знать, какие файлы обновляются с помощью composer update
на cmd. Какие еще файлы нужно было запустить, чтобы избежать этой ошибки ??
Ты можешь:
composer update
на ваше местный только сервер, когда вы хотите.composer.lock
) но vendor
каталогvendor
, с composer.lock
)composer install
на вашем производственном сервере. Он обновит все ваши зависимости в соответствии с вашими composer.lock
(Итак точный те же версии, что и ваше последнее обновление на вашем локальном сервере).Итак, другими словами: вы не должны бежать composer update
на вашем сервере, просто composer install
на каждую доставку (и вам нужно будет сохранить composer.lock
)
Надеюсь, это поможет вам.
бежать composer dump-autoload
до composer update
, Если по-прежнему не работает, попробуйте очистить кэш композитора с помощью composer clear-cache
composer update
обновит версию каждого пакета из папки вашего поставщика.
обычно, если вы не можете гарантировать, что вам нужно обновить все версии каждого пакета, вы должны использовать composer install
причина ошибки «неопределенный класс» обычно возникает из app.php. Потому что поставщик услуг определен в app.php, но класс (пакет) не был установлен.
чтобы решить вашу проблему, попробуйте сделать это тремя способами: