Heim >Entwicklungswerkzeuge >composer >Ausführliche Erläuterung des Unterschieds zwischen Composer.josn und Composer.lock sowie des Unterschieds zwischen Composer-Installation und Composer-Aktualisierung
In der folgenden Spalte des Composer-Tutorials wird Ihnen der Unterschied zwischen Composer.josn und Composer.lock sowie eine detaillierte Erklärung des Unterschieds zwischen Composer-Installation und Composer vorgestellt updata. Ich hoffe, es wird Freunden helfen, die es brauchen.
Problembeschreibung
Wir müssen häufig Erweiterungspakete zu bestehenden Projekten hinzufügen, manchmal aufgrund falscher Anleitungen in der Dokumentation Das folgende Bild stammt aus diesem Dokument:
composer update Dieser Befehl kann in unserer aktuellen Logik dem Projekt großen Schaden zufügen.
Da die Logik der Composer-Aktualisierung darin besteht, alle Erweiterungspakete gemäß den in Composer.json angegebenen Erweiterungspaketversionsregeln zu aktualisieren, werden beispielsweise alle Erweiterungspakete aktualisiert Das Projekt Monolog wurde verwendet und die Konfigurationsinformationen lauteten zu diesem Zeitpunkt
"monolog/monolog": "1.*",
Monolog Version 1.1 wurde installiert, und jetzt ist es mehr als einen Monat her Später ist Monolog 1.2. Nach dem Ausführen des Befehls wurde das Projekt noch nicht auf Version 1.2 getestet. Die Situation ist manchmal sehr instabil ein riesiges Projekt. Wenn Sie keine vollständigen Abdeckungstests für das Projekt schreiben, wissen Sie nicht, was kaputt ist.
Welcher Composer-Befehl sollte also verwendet werden? installieren, aktualisieren oder benötigen?
Als nächstes werden wir es einzeln erklären.
Einfache Erklärung
Composer-Installation – Wenn eine Composer.lock-Datei vorhanden ist, installieren Sie diese direkt, andernfalls installieren Sie das neueste Erweiterungspaket und die Abhängigkeiten von Composer.json;
Composer update – Von Composer .json werden die neuesten Erweiterungspakete und Abhängigkeiten installiert;
Composer-Update-Anbieter/-Paket – von Composer.json oder dem entsprechenden Paket konfigurieren und auf die neueste Version aktualisieren; Neu/Paket – Installation Neu/Paket hinzufügen, Sie können die Version angeben, z. B.: Composer benötigt neues/Paket ~2.5.
ProzessLassen Sie uns einige vorstellen tägliche Produktionsprozesse, um das Verständnis aller zu erleichtern.
Prozess 1: Neuer ProjektprozessErstellen Sie „composer.json“ und fügen Sie das Erweiterungspaket hinzu, von dem es abhängt;
Führen Sie „composer install“ aus, um die Erweiterung zu installieren Paket und Composer.lock generieren;
Composer.lock an den Codeversionscontroller senden, z. B.: git
Prozess 2: Projektmitarbeiter installieren vorhandene ProjekteFühren Sie nach dem Klonen des Projekts „Composer Install“ direkt im Stammverzeichnis aus, um die angegebene Version des Erweiterungspakets und seine Abhängigkeiten von „composer.lock“ zu installieren.
Dieser Prozess eignet sich für die Bereitstellung einer Produktionsumgebung Code.
Prozess 3: Fügen Sie dem Projekt ein neues Erweiterungspaket hinzuVerwenden Sie Composer, um ein Erweiterungspaket hinzuzufügen.
Senden Sie das aktualisierte Paket Composer.json und Composer.lock an den Codeversionscontroller, wie zum Beispiel: git;
Über die Composer.lock-DateiDie Composer.lock-Datei speichert die Abhängigkeiten jedes Codes Der Versionsdatensatz (siehe Abbildung unten) wird an den Versionscontroller übermittelt und in Verbindung mit der Composer-Installation verwendet, um die Konsistenz der Codeversionen sicherzustellen, die in der Entwicklungsumgebung und Online-Produktionsumgebung aller Mitarbeiter im Team ausgeführt werden.
Über die Installationsmethode des ErweiterungspaketsBereiten Sie dann das Hinzufügen eines Erweiterungspakets vor, installieren Sie es, aktualisieren Sie es und erfordern Sie alles Drei Befehle können zum Installieren von Erweiterungspaketen verwendet werden. Welches ist das richtige?
Die Antwort lautet: Verwenden Sie den Composer-Anforderungsbefehl
Nachdem Sie Composer.json manuell geändert haben, um das Erweiterungspaket hinzuzufügen, kann Composer Update New/Package außerdem verwendet werden, um das angegebene Erweiterungspaket zu aktualisieren , die auch korrekt installiert werden kann, es wird jedoch nicht empfohlen, diese Methode zu verwenden, da Sie, sobald Sie vergessen, den Namen des nachfolgenden Erweiterungspakets festzulegen, in einen Zustand des Untergangs geraten, also lassen Sie sich nicht in eine Falle.
Die oben genannten Konzepte sind für Anfänger oder Veteranen ziemlich verwirrend. Das Wichtigste, was Sie sich merken sollten, ist dieses Konzept:
Um dem ursprünglichen Projekt neue Erweiterungen hinzuzufügen, verwenden Sie den Composer-Befehl „require new/package“. installieren.
Wenn Sie eine Version hinzufügen müssen
Composer benötigt „foo/bar:1.0.0“
Aktualisieren Sie die angegebene Erweiterung auf die angegebene Version
Manchmal wurden dem vorherigen Erweiterungspaket neue Funktionen hinzugefügt. Wenn Sie dieses einzelne Erweiterungspaket auf eine bestimmte Version aktualisieren möchten, können Sie dazu auch require verwenden.
Wie im folgenden Beispiel müssen Sie „sami/sami“: „3.0.“ auf „sami/sami“: „3.2“ aktualisieren.
Befehlszeilenausführung:
vorbei!
Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung des Unterschieds zwischen Composer.josn und Composer.lock sowie des Unterschieds zwischen Composer-Installation und Composer-Aktualisierung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!