compositor.bloqueo:¿como funciona?
-
12-12-2019 - |
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?
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 (usandocomposer 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