Pergunta

Estou tentando entender esta parte: http://getcomposer.org/doc/02-libraries.md#lock-file

este arquivo de bloqueio não terá nenhum efeito em outros projetos que dependem dele.Só tem efeito no projeto principal"

Isso significa que se o projeto P depende da biblioteca A e a biblioteca A depende da biblioteca B v1.3, o projeto P não se importará com a versão da biblioteca B e possivelmente instalará B 1.4?Qual é o objetivo então?

Ou significa o contrário, como seria de esperar de um gerenciador de dependências?

Foi útil?

Solução

As dependências do compositor são definidas em composer.json.Ao executar o compositor install pela primeira vez ou ao executar o compositor atualize um arquivo de bloqueio chamado composer.lock Será criado.

A documentação citada refere-se apenas ao arquivo de bloqueio.Se o seu projeto P depende da biblioteca A e A depende de B v1.3.***, então se A contiver um arquivo de bloqueio informando que alguém executou "atualização do compositor", resultando na instalação de B v1.3.2 e, em seguida, instalando A em seu projeto P ainda pode instalar o 1.3.3, já que o composer.json (não .lock!) definiu a dependência como 1.3.*.

Os arquivos de bloqueio sempre contêm números de versão exatos e são úteis para comunicar a versão testada aos colegas ou ao publicar um aplicativo.Para bibliotecas, as informações de dependência em composer.json é tudo o que importa.

Outras dicas

composer.lock registra as versões exatas que estão instaladas.Para que você esteja na mesma versão de seus colegas de trabalho.

instalação do compositor

  • Verificar se há composer.lock arquivo
  • Caso contrário, gere automaticamente composer.lock arquivo (usando composer update)
  • Instale as versões especificadas registradas no composer.lock arquivo

atualização do compositor

  • Passar pela composer.json arquivo
  • Verifique a disponibilidade de versões mais recentes (mais recentes), com base nos critérios de versão mencionados (por exemplo,1.12.*)
  • Instale as versões mais recentes possíveis (de acordo com acima)
  • Atualizar composer.lock arquivo com versões instaladas

Então, em uma lista de verificação simples.

Se você quiser manter todos os colegas de trabalho nas mesmas versões que você...

  • Comprometa seu composer.lock para GIT (ou vcs que você tem)
  • Peça a outras pessoas para obterem essa versão do composer.lock arquivo
  • Sempre use composer install para obter as dependências corretas

Se você deseja atualizar as dependências do sistema para novas versões

  • Verifique o arquivo compositor.json para especificações de versão.
  • Faça um composer update
  • Isto mudará o composer.lock arquivo com versões mais recentes
  • Envie para o GIT (ou vcs)
  • Peça a outros para obtê-lo e composer install

A seguir será uma leitura muito boa
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file

Aproveite o poder de composer.lock arquivo!

O objetivo do arquivo de bloqueio é registrar as versões exatas que estão instaladas para que possam ser reinstaladas.Isso significa que se você tiver uma especificação de versão 1.* e seu colega de trabalho executar composer update que instala 1.2.4 e, em seguida, envia o arquivo compositor.lock, quando você composer install, você também obterá o 1.2.4, mesmo que o 1.3.0 tenha sido lançado.Isso garante que todos que trabalham no projeto tenham exatamente a mesma versão.Leia mais aqui Compositor:É tudo sobre o arquivo de bloqueio

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top