106 votes

composer.lock : comment cela fonctionne-t-il ?

J'essaie de comprendre cette partie : http://getcomposer.org/doc/02-libraries.md#lock-file

ce fichier de verrouillage n'aura aucun effet sur les autres projets qui en dépendent. Il n'a d'effet que sur le projet principal"

Cela signifie-t-il que si le projet P dépend de la bibliothèque A, et que la bibliothèque A dépend de la bibliothèque B v1.3, le projet P ne se souciera pas de la version de la bibliothèque B, et installera éventuellement B 1.4 à la place ? Quel est l'intérêt alors ?

Ou bien cela signifie-t-il le contraire, comme on pourrait s'y attendre de la part d'un gestionnaire de dépendances ?

126voto

ADynaMic Points 369

composer.lock enregistre les versions exactes qui sont installées. Ainsi, vous êtes dans les mêmes versions que vos collègues.

installer le compositeur

  • Vérifiez si composer.lock fichier
  • Si non, génération automatique composer.lock (en utilisant composer update )
  • Installer les versions spécifiées enregistrées dans le composer.lock fichier

mise à jour du compositeur

  • Passez par le composer.json fichier
  • Vérifier la disponibilité des nouvelles (dernières) versions, sur la base des critères de version mentionnés (par exemple 1.12.*)
  • Installer les dernières versions possibles (selon les critères ci-dessus)
  • Mise à jour composer.lock fichier avec les versions installées

Donc, dans une simple liste de contrôle.

Si vous voulez que tous vos collègues aient les mêmes versions que vous...

  • Engagez votre composer.lock à GIT (ou vcs que vous avez)
  • Demandez aux autres d'obtenir cette version de composer.lock fichier
  • Utilisez toujours composer install pour obtenir les dépendances correctes

Si vous voulez mettre à niveau les dépendances du système vers de nouvelles versions

  • Vérifiez les spécifications de la version dans le fichier composer.json.
  • Faites un composer update
  • Cela modifiera le composer.lock fichier avec les dernières versions
  • Déposez-le dans le GIT (ou vcs).
  • Demandez aux autres de l'obtenir et composer install

La lecture suivante sera très utile
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file

Profitez de la puissance de composer.lock fichier !

88voto

naderman Points 687

Les dépendances de Composer sont définies dans composer.json . Lors de la première exécution de composer install, ou lors de l'exécution de composer update, un fichier verrou appelé composer.lock sera créé.

La documentation citée se réfère uniquement au fichier de verrouillage. Si votre projet P dépend de la bibliothèque A et que A dépend de B v1.3.***, alors si A contient un fichier de verrouillage indiquant que quelqu'un a exécuté "composer update", ce qui a entraîné l'installation de B v1.3.2, alors l'installation de A dans votre projet P pourrait quand même installer 1.3.3, car le fichier composer.json (pas .lock !) a défini la dépendance à la version 1.3.*.

Les fichiers de verrouillage contiennent toujours les numéros de version exacts, et sont utiles pour communiquer à des collègues la version avec laquelle vous avez testé ou lors de la publication d'une application. Pour les bibliothèques, les informations sur les dépendances dans composer.json est tout ce qui compte.

6voto

Le but du fichier de verrouillage est d'enregistrer les versions exactes qui sont installées afin de pouvoir les réinstaller. Cela signifie que si vous avez une version spec de 1.* et que votre collègue exécute composer update qui installe la 1.2.4, puis commet le fichier composer.lock, lorsque vous composer install vous recevrez également la 1.2.4, même si la 1.3.0 a été publiée. Cela permet de s'assurer que toutes les personnes travaillant sur le projet disposent de la même version exacte. Compositeur : Tout est dans le fichier de verrouillage

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X