composer.json содержит зависимости проекта (пакеты и их версии), заданные явно (например, >=1.0 <2.0).
composer.lock — это сгенерированный файл, который фиксирует точные версии всех установленных зависимостей со всеми их подзависимостями.
Различия:
composer.json — требования к зависимостям, composer.lock — точные версии установленных зависимостей.composer.json — разработчик, composer.lock — Composer (генерируется командой composer install или composer update).composer.json — определение зависимостей, composer.lock — обеспечение повторяемости сборок на разных окружениях.git add) и коммитятся (git commit).При установке зависимостей Composer сначала проверяет composer.lock. Если он существует, устанавливаются точные версии из него. Если нет или выполняется composer update, зависимости выбираются и устанавливаются согласно composer.json, а затем обновляется composer.lock.