Junior
Qual é a diferença entre os ficheiros composer.json e composer.lock?
sobes.tech IA
Resposta da IA
composer.json contém as dependências do projeto (pacotes e suas versões), especificadas explicitamente (por exemplo, >=1.0 <2.0).
composer.lock é um arquivo gerado que fixa as versões exatas de todas as dependências instaladas juntamente com suas subdependências.
Diferenças:
- Conteúdo:
composer.json— requisitos de dependências,composer.lock— versões exatas das dependências instaladas. - Autores:
composer.json— desenvolvedor,composer.lock— Composer (gerado pelo comandocomposer installoucomposer update). - Objetivo:
composer.json— definir dependências,composer.lock— garantir a reprodutibilidade das builds em diferentes ambientes. - Em sistemas de controlo de versões: Normalmente, ambos os ficheiros são adicionados (
git add) e confirmados (git commit).
Ao instalar dependências, o Composer verifica primeiro o composer.lock. Se existir, instala as versões exatas dele. Caso contrário, ou se executar composer update, as dependências são selecionadas e instaladas de acordo com o composer.json, e depois o composer.lock é atualizado.