<b>Composer ломается не из‑за пакетов, а из‑за привычек в проекте</b>
Чаще всего проблемы начинаются не в vendor, а в дисциплине: разные lock-файлы, ручные правки composer.json, «временные» require-dev и отсутствие единого сценария установки. Composer любит повторяемость; если окружения ведут себя по-разному, он лишь честно это показывает.
Проверь базовый набор:
• composer.json и composer.lock должны меняться вместе
• install для окружений, update — только осознанно
• версии расширений PHP и платформы держи одинаковыми
• post-install/post-update скрипты не должны прятать бизнес-логику
Отдельная ловушка — зависимости, которые тянут друг друга в конфликтующие диапазоны. Здесь помогает не «поставить что-то одно», а сначала посмотреть дерево: кто именно блокирует пакет, где зажата версия, и нельзя ли заменить прямую зависимость на более узкую интеграцию. Чем меньше магии в require, тем проще сопровождение.
Если Composer начал «вдруг» вести себя странно, сначала ищи не баг, а расхождение условий: lock, platform, расширения и скрипты. Это обычно быстрее, чем бесконечно пересобирать vendor.
Laravel & PHP Deep — фреймворки и пакеты
@laravel_php_deep
<b>Composer ломается не из‑за пакетов, а из‑за привычек в проекте</b>
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.