Ответ
Да, для проектов-приложений composer.lock обязательно нужно коммитить в репозиторий. Этот файл фиксирует точные версии всех установленных зависимостей, включая их транзитивные зависимости. Это гарантирует, что все разработчики в команде и продакшен-среда используют идентичные версии пакетов, что предотвращает ошибки из-за расхождений в версиях.
Пример .gitignore для приложения (PHP-проекта):
/vendor/
.env
Исключение: Если вы разрабатываете библиотеку, которую будут подключать в другие проекты, то composer.lock коммитить не следует. Библиотека должна быть совместима с диапазоном версий, указанным в composer.json, чтобы не навязывать конечным приложениям конкретные версии зависимостей.
Пример .gitignore для библиотеки:
/vendor/
composer.lock