Pregunta

Estoy tratando de entender esta parte: http://getcomposer.org/doc/02-libraries.md#lock-file

este archivo de bloqueo no tendrá ningún efecto en otros proyectos que dependen de él.Sólo tiene efecto en el proyecto principal"

¿Eso significa que si el proyecto P depende de la biblioteca A y la biblioteca A depende de la biblioteca B v1.3, al proyecto P no le importará la versión de la biblioteca B y posiblemente instalará B 1.4 en su lugar?¿Cuál es el punto entonces?

¿O significa todo lo contrario, como cabría esperar de un administrador de dependencias?

¿Fue útil?

Solución

Las dependencias del compositor se definen en composer.json.Cuando ejecuta la instalación de Composer por primera vez, o cuando ejecuta Composer actualiza, aparece un archivo de bloqueo llamado composer.lock se creará.

La documentación citada se refiere únicamente al archivo de bloqueo.Si su proyecto P depende de la biblioteca A y A depende de B v1.3.***, entonces si A contiene un archivo de bloqueo que dice que alguien ejecutó una "actualización del compositor", lo que resultó en la instalación de B v1.3.2, entonces instale A en su proyecto Es posible que P aún instale 1.3.3, ya que composer.json (no .lock!) definió la dependencia como 1.3.*.

Los archivos de bloqueo siempre contienen números de versión exactos y son útiles para comunicar la versión que probó a sus colegas o al publicar una aplicación.Para las bibliotecas, la información de dependencia en composer.json es todo lo que importa.

Otros consejos

composer.lock registra las versiones exactas que están instaladas.Para que estés en las mismas versiones que tus compañeros de trabajo.

instalación del compositor

  • Comprobar composer.lock archivo
  • Si no, generar automáticamente composer.lock archivo (usando composer update)
  • Instale las versiones especificadas registradas en el composer.lock archivo

actualización del compositor

  • Ir a través de composer.json archivo
  • Verifique la disponibilidad de versiones más nuevas (más recientes), según los criterios de versión mencionados (p. ej.1.12.*)
  • Instale las últimas versiones posibles (según lo anterior)
  • Actualizar composer.lock archivo con versiones instaladas

Entonces, en una simple lista de verificación.

Si desea mantener a todos los compañeros de trabajo en las mismas versiones que usted...

  • Compromete tu composer.lock a GIT (o vcs que tengas)
  • Pídale a otros que obtengan esa versión de composer.lock archivo
  • Siempre usa composer install para obtener las dependencias correctas

Si desea actualizar las dependencias del sistema a nuevas versiones

  • Consulte el archivo compositor.json para conocer las especificaciones de la versión.
  • hacer un composer update
  • Esto cambiará el composer.lock archivo con las versiones más recientes
  • Comprometerlo con GIT (o vcs)
  • Pídele a otros que lo consigan y composer install

Lo siguiente será una muy buena lectura.
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file

Disfruta del poder de composer.lock ¡archivo!

El objetivo del archivo de bloqueo es registrar las versiones exactas que están instaladas para que puedan reinstalarse.Esto significa que si tiene una especificación de versión de 1.* y su compañero de trabajo ejecuta composer update que instala 1.2.4 y luego confirma el archivo compositor.lock, cuando composer install, también obtendrá 1.2.4, incluso si se lanzó 1.3.0.Esto garantiza que todos los que trabajan en el proyecto tengan exactamente la misma versión. Lea más aquí Compositor:Se trata del archivo de bloqueo

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top