При обновлении OctoberCMS с версии 3.x на 4.x вы можете столкнуться со следующими ошибками:
Target class [core.composer] does not exist.
и/или
Class "core.composer" does not exist
Эти ошибки означают, что Laravel не может найти или корректно загрузить сервис core.composer, который является частью ядра OctoberCMS.
❗ Причины ошибки
Наиболее частые причины:
- В проекте всё ещё используется старая версия
october/rain(^3.0), несмотря на"^4.0"вcomposer.json. - Один из плагинов содержит свою локальную копию
vendor/, в которой осталась старая версияoctober/rain. - Laravel автозагрузчик (
autoload) использует неверную копию класса — из плагина, а не из основногоvendor/.
✅ Решение проблемы пошагово
🔎 Шаг 1: Убедись, что в composer.json прописаны корректные версии
"october/system": "^4.0",
"october/rain": "^4.0",
"laravel/framework": "^12.0"
🧼 Шаг 2: Удали старый vendor/, composer.lock и все закэшированные пакеты
rm -rf vendor/
rm composer.lock
composer clear-cache
🧪 Шаг 3: Проверь, нет ли у плагинов собственного vendor/ каталога
Это самая частая причина.
Пример (❌ неправильно):
plugins/
yourvendor/
yourplugin/
vendor/ ← ❌ УДАЛИТЬ!
composer.lock ← ❌ УДАЛИТЬ!
Если внутри какого-либо плагина есть vendor/, удалите его вручную — Laravel может загружать классы именно оттуда, обходя основную автозагрузку.
🔄 Шаг 4: Переустанови зависимости заново
composer install
🚀 Шаг 5 (опционально): Очисти кэш
php artisan cache:clear
🧠 Заключение
В 99% случаев ошибка Target class [core.composer] does not exist вызвана конфликтом между старой и новой версией october/rain, либо автозагрузкой Laravel, которая уходит в ненужный vendor/.
После удаления локальных vendor/ в плагинах, чистки кэша и установки зависимостей — проблема исчезает.
Если вы столкнулись с этой ошибкой при обновлении проекта на OctoberCMS 4 — следуйте шагам выше, и всё заработает!