Entendendo o composer.lock
Aprenda por que o composer.lock garante compilações reproduzíveis em diferentes ambientes.
Entendendo o composer.lock é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.
Objetivo de composer.lock
composer.lock registra a versão exata de cada pacote instalado, garantindo que todos os desenvolvedores e servidores instalem o mesmo código.
O que ele contém
Para cada pacote: nome, versão resolvida, URL de origem, hash da distribuição (soma de verificação) e restrições de require.
Compilações reproduzíveis
Quando você executa composer install em uma máquina que tem um arquivo de bloqueio, o Composer instala exatamente o que o arquivo registra — ignorando as restrições de versão.
Você deve confirmá-lo no repositório
Sempre confirme composer.lock no repositório para aplicações. Isso garante instalações reproduzíveis em todos os ambientes.
Arquivo de bloqueio e segurança
O arquivo de bloqueio inclui somas de verificação SHA-256. O Composer verifica a integridade ao baixar os pacotes — pacotes adulterados são rejeitados.
Quando ele muda?
O arquivo de bloqueio muda quando você executa composer update, composer require ou composer remove. A execução normal de composer install nunca o modifica.
Atualizando um único pacote
Atualize apenas uma entrada de pacote sem alterar as demais:
$ composer update vendor/package-nameConflitos com composer.json
Se composer.lock estiver dessincronizado com composer.json, o Composer avisará e solicitará que você execute update.
Requisitos da plataforma
O arquivo de bloqueio também registra os requisitos de versão do PHP e das extensões verificados no momento do bloqueio — evitando problemas do tipo "funciona na minha máquina".
composer.lock em CI/CD
Os fluxos de CI devem executar composer install --no-dev --optimize-autoloader: usam exatamente o arquivo de bloqueio, ignoram os pacotes de desenvolvimento e criam um mapa de classes otimizado.
Nunca edite manualmente
O arquivo de bloqueio é um JSON válido, mas nunca o edite manualmente — sempre use os comandos do Composer.
Resumo
composer.lock é a única fonte confiável sobre o que está instalado. Faça o commit dele, use install em produção e execute update somente quando quiser versões mais recentes.
Verificação rápida
O que composer install faz quando composer.lock existe?
Perguntas Frequentes
A aula “Entendendo o composer.lock” é grátis?
Sim — o texto completo de “Entendendo o composer.lock” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.
O que vou aprender em “Entendendo o composer.lock”?
Aprenda por que o composer.lock garante compilações reproduzíveis em diferentes ambientes. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar PHP Academy?
Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Entendendo o composer.lock”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de PHP Academy?
Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Instalação e inicialização do Composer
- Inclusão e atualização de pacotes
- Entendendo o composer.lock
- Scripts e carregamento automático do Composer