Komponist.Sperre:wie funktioniert es?
-
12-12-2019 - |
Frage
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 hat nur Auswirkungen auf das Hauptprojekt "
Bedeutet das, dass Projekt P, wenn Projekt P von Bibliothek A und Bibliothek A von Bibliothek B Version 1.3 abhängt, sich nicht um die Version von Bibliothek B kümmert und stattdessen möglicherweise B 1.4 installiert?Was ist dann der Sinn?
Oder bedeutet es das Gegenteil, wie man es von einem Abhängigkeitsmanager erwarten würde?
Lösung
Komponistenabhängigkeiten sind definiert in composer.json
.Wenn Sie composer install zum ersten Mal ausführen oder wenn Sie composer update ausführen, aktualisieren Sie eine Sperrdatei mit dem Namen composer.lock
erstellt werden.
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 zur Installation von B v1.3.2 führte, dann könnte die Installation von A in Ihrem Projekt P immer noch 1.3.3 installieren, da die composer.json
(nicht .lock
!) definierte die Abhängigkeit auf 1.3.*.
Sperrdateien enthalten immer genaue Versionsnummern und sind nützlich, um die Version, mit der Sie getestet haben, an Kollegen weiterzugeben oder wenn Sie eine Anwendung veröffentlichen.Für Bibliotheken die Abhängigkeitsinformationen in composer.json
ist alles was zählt.
Andere Tipps
composer.lock
zeichnet die genauen Versionen auf, die installiert sind.Damit Sie mit Ihren Mitarbeitern in den gleichen Versionen sind.
komponist installieren
- Überprüfen Sie auf
composer.lock
Datei - Wenn nicht, automatisch generieren
composer.lock
datei (Mitcomposer update
) - Installieren Sie die angegebenen Versionen, die in der
composer.lock
Datei
komponisten-Update
- Gehen Sie durch die
composer.json
Datei - Prüfen Sie die Verfügbarkeit neuerer (neuester) Versionen anhand der genannten Versionskriterien (z.1.12.*)
- Installieren Sie die neuesten möglichen (gemäß oben) Versionen
- Update
composer.lock
datei mit installierten Versionen
Also in einer einfachen Checkliste.
Wenn Sie alle Mitarbeiter in den gleichen Versionen wie Sie behalten möchten...
- Verpflichten Sie Ihre
composer.lock
zu GIT (oder vcs, die du hast) - Bitten Sie andere, diese Version von zu erhalten
composer.lock
Datei - Immer verwenden
composer install
um die richtigen Abhängigkeiten zu erhalten
Wenn Sie die Systemabhängigkeiten auf neue Versionen aktualisieren möchten
- Überprüfen Sie den Komponisten.json-Datei für Versionsspezifikationen.
- Mach einen
composer update
- Dies wird die
composer.lock
datei mit den neuesten Versionen - Übergeben Sie es an das GIT (oder vcs)
- Bitten Sie andere, es zu bekommen und
composer install
Es folgt eine sehr gute Lektüre
https://blog.engineyard.com/2014/composer-its-all-about-the-lock-file
Genieße die Kraft von composer.lock
feile!
Der Sinn der Sperrdatei besteht darin, die genauen Versionen aufzuzeichnen, die installiert sind, damit sie erneut installiert werden können.Dies bedeutet, dass, wenn Sie eine Versionsspezifikation von 1 haben.* und Ihr Mitarbeiter läuft composer update
das installiert 1.2.4 und schreibt dann den Komponisten fest.datei sperren, wenn Sie composer install
, erhalten Sie auch 1.2.4, auch wenn 1.3.0 veröffentlicht wurde.Dies stellt sicher, dass jeder, der an dem Projekt arbeitet, genau die gleiche Version hat.Lesen Sie hier mehr Komponist:Es geht nur um die Sperrdatei