Выбор ответа Junior Composer и PSR спрашивают часто обновлено
composer.json и composer.lock
Вопрос
Зачем коммитить composer.lock в репозиторий приложения?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Он фиксирует точные версии, и install везде ставит одно и то же. composer.json описывает допустимые диапазоны версий, а composer.lock точные установленные версии с хешами. composer install ставит ровно то, что в lock, поэтому CI, сервер и коллеги получают одинаковый код. composer update пересчитывает…
Варианты ответа
- Без него Composer не найдёт пакеты на Packagist при установке
- Он нужен только библиотекам, а приложениям его коммитить не надо
- Он фиксирует точные версии, и
installвезде ставит одно и то жеправильный ответ - В нём хранятся токены к приватным репозиториям для деплоя
Разбор
composer.json описывает допустимые диапазоны версий, а composer.lock точные установленные версии с хешами. composer install ставит ровно то, что в lock, поэтому CI, сервер и коллеги получают одинаковый код. composer update пересчитывает версии и переписывает lock. Для библиотек lock обычно не публикуют, но для приложений коммитят обязательно. Секреты хранят в auth.json, который в репозиторий не кладут.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.