composer.lock: wie funktioniert es?

Lesezeit: 4 Minuten

Benutzer-Avatar
Glücklicher Entwickler

Ich versuche diesen Teil zu verstehen: http://getcomposer.org/doc/02-libraries.md#lock-file

Diese Sperrdatei hat keine Auswirkungen auf andere Projekte, die davon abhängen. Es wirkt sich nur auf das Hauptprojekt aus.”

Bedeutet das, dass, wenn Projekt P von Bibliothek A abhängt und Bibliothek A von Bibliothek B v1.3 abhängt, Projekt P sich nicht um die Version von Bibliothek B kümmert und möglicherweise stattdessen B 1.4 installiert? Was ist dann der Sinn?

Oder bedeutet es das Gegenteil, wie man es von einem Abhängigkeitsmanager erwarten würde?

Benutzer-Avatar
Dilhan Maduranga

composer.lock zeichnet die genauen Versionen auf, die installiert sind. Damit Sie mit Ihren Kollegen auf dem gleichen Stand sind.

Composer installieren

  • Prüfen Auf composer.lock Datei
  • Wenn nicht, automatisch generieren composer.lock Datei (mit composer update)
  • Installieren Sie die angegebenen Versionen, die in der aufgezeichnet sind composer.lock Datei

Komponisten-Update

  • Gehe durch die composer.json Datei
  • Prüfen Sie die Verfügbarkeit neuerer (aktueller) Versionen anhand der genannten Versionskriterien (z. B. 1.12.*)
  • Installieren Sie die neusten möglichen (gemäß oben) Versionen
  • Aktualisieren composer.lock Datei mit installierten Versionen

Also in einer einfachen Checkliste.

Wenn Sie möchten, dass alle Mitarbeiter die gleichen Versionen wie Sie haben …

  • Verpflichte dich composer.lock zu GIT (oder vcs, die Sie haben)
  • Bitten Sie andere, diese Version von zu erhalten composer.lock Datei
  • Verwenden Sie immer composer install um die richtigen Abhängigkeiten zu erhalten

Wenn Sie die Systemabhängigkeiten auf neue Versionen aktualisieren möchten

  • Überprüfen Sie die Datei composer.json auf Versionsspezifikationen.
  • Mach ein composer update
  • Dadurch ändert sich die composer.lock Datei mit den neuesten Versionen
  • Übertragen Sie es an das GIT (oder vcs)
  • Bitten Sie andere, es zu bekommen und composer install

Das Folgende wird eine sehr gute Lektüre sein
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file

Genießen Sie die Kraft von composer.lock Datei!

  • Ich möchte auch darauf hinweisen, dass die Composer-Installation manchmal nicht die gewünschten Versionen erhält, wenn sie bereits installiert sind. Als Problemumgehung müssen sie den Herstellerordner löschen und die Composer-Installation erneut durchführen, um die richtige Version in Composer zu erhalten. sperren. zB bekomme ich 4.0.1 statt 4.0.14-beta von meinem Anbieter nach der Installation von Composer, ich habe den Anbieter gelöscht und dann Composer erneut installiert, dann habe ich die richtige Version 4.0.14-beta

    – PauAI

    19. März 2017 um 23:39 Uhr

Composer-Abhängigkeiten sind in definiert composer.json. Beim erstmaligen Ausführen von Composer Install oder beim Ausführen von Composer Update wird eine Sperrdatei aufgerufen composer.lock wird erstellt.

Die zitierte Dokumentation bezieht sich nur auf die Sperrdatei. Wenn Ihr Projekt P von Bibliothek A und A von B v1.3.*** abhängt, dann wenn A eine Sperrdatei enthält, die besagt, dass jemand “composer update” ausgeführt hat, was dazu führte, dass B v1.3.2 installiert wurde, dann installieren Sie A in Ihrem Projekt P könnte noch 1.3.3 installieren, da die composer.json (nicht .lock!) definierte die Abhängigkeit auf 1.3.*.

Sperrdateien enthalten immer exakte Versionsnummern und sind nützlich, um Kollegen oder bei der Veröffentlichung einer Anwendung mitzuteilen, mit welcher Version Sie getestet haben. Für Bibliotheken die Abhängigkeitsinformationen in composer.json ist alles was zählt.

  • Wie würde man alle Abhängigkeiten auf das aktualisieren, was in einer Sperrdatei angegeben ist (z. B. beim Übertragen eines Projekts von Staging nach Live)?

    – Petah

    27. Februar 2013 um 17:12 Uhr

  • Führen Sie einfach composer.phar install aus, wodurch alles auf den Stand der Sperrdatei installiert/aktualisiert/entfernt wird

    – Nadermann

    28. Februar 2013 um 16:09 Uhr

  • In Python und Ruby gibt es ein ähnliches Konzept mit Gemfile.lock und requirements.txt. Sehen: caremad.io/blog/setup-vs-requirement und yehudakatz.com/2010/12/16/… Bedeutet das nicht, dass für PHP “Libraries” die compooser.lock nicht eingehalten werden muss. aber für PHP “Applications” sollte die composer.lock festgeschrieben werden?

    – CMCDragonkai

    26. November 2013 um 10:22 Uhr

  • Die Datei composer.lock kann auch für Bibliotheken von Vorteil sein. Nicht für alle, die von der Bibliothek abhängig sind, sondern für Entwickler der Bibliothek, die mitteilen, welche Versionen sie installiert haben, um Tests auszuführen oder Probleme zu debuggen, kann es auch helfen, zu klären, mit welchen Versionen von Abhängigkeiten das CI-System Tests für die Bibliothek durchgeführt hat.

    – Nadermann

    23. November 2016 um 13:10 Uhr

  • composer.lock ist wie Metadaten für die Datei composer.json

    – Wasim Khan

    29. Januar 2019 um 9:45 Uhr

Der Zweck der Sperrdatei besteht darin, die genauen installierten Versionen aufzuzeichnen, damit sie erneut installiert werden können. Das heißt, wenn Sie eine Versionsspezifikation von 1.* haben und Ihr Kollege läuft composer update die 1.2.4 installiert und dann die composer.lock-Datei festschreibt, wenn Sie composer install, erhalten Sie auch 1.2.4, selbst wenn 1.3.0 veröffentlicht wurde. Dadurch wird sichergestellt, dass jeder, der an dem Projekt arbeitet, genau dieselbe Version hat. Lesen Sie hier mehr Komponist: Es dreht sich alles um die Sperrdatei

1355070cookie-checkcomposer.lock: wie funktioniert es?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy