Heim >Entwicklungswerkzeuge >composer >Verwenden Sie das Composer-Update mit Vorsicht!

Verwenden Sie das Composer-Update mit Vorsicht!

藏色散人
藏色散人nach vorne
2020-07-13 13:28:106733Durchsuche

Die folgende Tutorial-Kolumne von composer stellt Ihnen die Probleme bei der Verwendung des Composer-Updates mit Vorsicht vor. Ich hoffe, dass es Freunden in Not hilfreich sein wird!

Verwenden Sie das Composer-Update mit Vorsicht!

Problembeschreibung

Manchmal müssen wir häufig Erweiterungspakete zu bestehenden Projekten hinzufügen aufgrund fehlgeleiteter Dokumentation, wie zum Beispiel dem folgenden Bild aus diesem Dokument:

Verwenden Sie das Composer-Update mit Vorsicht!

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 Die damaligen Konfigurationsinformationen waren

"monolog/monolog": "1.*",

. Jetzt, mehr als einen Monat später, wurde der Befehl bereits aktualisiert Zu diesem Zeitpunkt funktionierte das Projekt nicht. Nach dem Testen mit 1.2 wurde die Situation manchmal noch schlimmer, insbesondere bei einem großen Projekt, bei dem Sie keine vollständigen Abdeckungstests für das Projekt geschrieben haben für dich. Ich weiß es nicht einmal.

Welcher Befehl soll verwendet werden? installieren, aktualisieren oder benötigen?

Als nächstes werden wir es einzeln erklären.

Einfache Erklärung

composer install - 如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖;
composer update - 从 composer.json 安装最新扩展包和依赖;
composer update vendor/package - 从 composer.json 或者对应包的配置,并更新到最新;
composer require new/package - 添加安装 new/package, 可以指定版本,如: composer require new/package ~2.5.

Prozess

Lassen Sie uns einige vorstellen Täglicher Produktionsprozess, um das Verständnis aller zu erleichtern und zu vertiefen.

Prozess 1: Neuer Projektprozess
Composer.json erstellen und das Erweiterungspaket hinzufügen, von dem es abhängt;
Composer-Installation ausführen, das Erweiterungspaket installieren und Composer.lock generieren; . Sperren Sie den Code-Versionscontroller, wie zum Beispiel: git;

Prozess 2: Projektmitarbeiter installieren vorhandene Projekte

Führen Sie nach dem Klonen des Projekts „Composer Install“ direkt im Stammverzeichnis aus, um die angegebene Version von Composer zu installieren .lock Das Erweiterungspaket und seine Abhängigkeiten;

Dieser Prozess eignet sich für die Bereitstellung von Produktionsumgebungscode.

Prozess 3: Fügen Sie dem Projekt ein neues Erweiterungspaket hinzu

Verwenden Sie „Composer Require Vendor/Package“, um das Erweiterungspaket hinzuzufügen.

Senden Sie die aktualisierte Datei „composer.json“ und „composer“. Sperren Sie den Code im Versionscontroller, zum Beispiel: git;

Über die Datei „composer.lock“

Die Datei „composer.lock“ wird gespeichert 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.

Verwenden Sie das Composer-Update mit Vorsicht!

关于扩展包的安装方法

那么,准备添加一个扩展包,install, update, require 三个命令都可以用来安装扩展包,选择哪一个才是正确的呢?

答案是:使用 composer require 命令

另外,在手动修改 composer.json 添加扩展包后,composer update new/package 进行指定扩展包更新的方式,也可以正确的安装,不过不建议使用这种方法,因为,一旦你忘记敲定后面的扩展包名,就会进入万劫不复的状态,别给自己留坑呀。

上面的概念不论对新手或者老手来说,都比较混淆,主要记住这个概念:

原有项目新添加扩展的,都使用 composer require new/package 这种方式来安装。

需要加版本的话

composer require "foo/bar:1.0.0"

更新指定扩展到指定版本

有时候你之前使用过的扩展包,加入了新功能,你想更新单独这个扩展包到指定版本,也可以使用 require 来操作。

如下面例子,需要更新 “sami/sami”: “3.0.” 到 “sami/sami”: “3.2.” 
Verwenden Sie das Composer-Update mit Vorsicht!

命令行运行: 
Verwenden Sie das Composer-Update mit Vorsicht! 

Das obige ist der detaillierte Inhalt vonVerwenden Sie das Composer-Update mit Vorsicht!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen