Laravel & PHP Deep — фреймворки и пакеты

<b>Composer ломается не в install, а в том, как вы описали зависимости</b>

<b>Composer ломается не в install, а в том, как вы описали зависимости</b>

Composer — это не просто менеджер пакетов, а контракт между вашим проектом и внешним миром. Если контракт кривой, проблем не избежать: от «почему у меня локально работает» до странных конфликтов в CI.

Вот что проверяют первыми:
— <code>require</code> и <code>require-dev</code> не смешивают боевые и тестовые зависимости.
— Версии задают осознанно: слишком широкий диапазон тянет неожиданные апгрейды, слишком узкий ломает обновления.
— <code>composer.lock</code> коммитят в приложение, но не делают из него мусорку для ручных правок.
— <code>autoload</code> должен быть чистым: неправильные namespace-ы и PSR-4 потом выглядят как «магия».

Отдельная зона риска — post-install скрипты и плагины. Если в проекте есть команда, которая меняет состояние системы, проверьте, переживает ли она чистую установку, пустой кеш и запуск в CI без интерактива.

Ещё один частый провал — игнорировать <code>composer why</code> и <code>composer why-not</code>. Когда пакет не ставится, причина почти всегда не в самом пакете, а в цепочке зависимостей выше. Эти команды экономят часы гаданий.

Если хотите меньше сюрпризов, держите правило простым: сначала читаем дерево зависимостей, потом обновляем. Не наоборот.
Этот пост опубликован в Telegram-канале Laravel & PHP Deep — фреймворки и пакеты. Подписаться можно по ссылке: @laravel_php_deep.
tech

Свежие посты в категории «Tech Infrastructure»

Все каналы категории →

start

Готовы запустить рекламу через сеть public.tg?

Новый оффер, продукт, GEO, кейс, событие или партнёрский запуск — соберём маршрут под задачу и отдадим медиаплан.

Telegram для медиаплана: @dumay. Быстрый тест: $20 за канал, $1000 за пакет по сети.