- Sie sollten Ihre Abhängigkeiten nicht direkt in der Produktion aktualisieren.
- Sie sollten die Versionskontrolle Ihrer composer.lock archivo.
- Sie sollten Ihre tatsächlichen Abhängigkeiten nicht versionskontrollieren.
1. Sie sollten Ihre Abhängigkeiten nicht direkt in der Produktion aktualisieren weil Sie nicht wissen, wie sich dies auf die Stabilität Ihres Codes auswirken wird. Mit den neuen Abhängigkeiten könnten Fehler eingeführt werden, das Verhalten des Codes könnte sich ändern und Ihren eigenen beeinflussen, er könnte mit anderen Abhängigkeiten inkompatibel sein usw. Sie sollten dies in einer Entwicklungsumgebung tun, gefolgt von angemessenen QA- und Regressionstests usw.
2. Sie sollten eine Versionskontrolle Ihrer composer.lock Datei Denn hier werden Informationen über Ihre Abhängigkeiten und über die Abhängigkeiten Ihrer Abhängigkeiten gespeichert, die es Ihnen ermöglichen, den aktuellen Stand des Codes zu replizieren. Dies ist wichtig, da alle Ihre Tests und Entwicklungen gegen einen bestimmten Code durchgeführt wurden. Wenn Sie sich nicht um die aktuelle Version des Codes kümmern, ist das so, als würden Sie Codeänderungen in Ihre Anwendung hochladen und sie nicht testen. Wenn Sie die Versionen Ihrer Abhängigkeiten aktualisieren, sollten Sie dies freiwillig tun und die notwendige Sorgfalt walten lassen, um sicherzustellen, dass alles noch funktioniert. Der Verlust von ein oder zwei Stunden Betriebszeit durch die Rückkehr zu einer früheren Version kann Sie viel Geld kosten.
Eines der Argumente, die Sie hören werden, dass man die composer.lock ist, dass Sie genau die Version einstellen können, die Sie in Ihrer komponist.json Datei, und dass auf diese Weise jedes Mal, wenn jemand die composer install
werden sie mit demselben Code installiert. Das ist nicht wahr, denn Ihre Abhängigkeiten haben ihre eigenen Abhängigkeiten, und ihre Konfiguration könnte in einem Format angegeben werden, das Updates auf Unterversionen oder sogar ganze Versionen erlaubt.
Dies bedeutet, dass selbst wenn Sie angeben, dass Sie Laravel 4.1.31 in Ihrem komponist.json Laravel in seinem komponist.json Datei könnte ihre eigenen Abhängigkeiten haben, die als Symfony event-dispatcher: 2.* benötigt werden. Mit dieser Art von Konfiguration könnten Sie mit Laravel 4.1.31 mit Symfony event-dispatcher 2.4.1 enden, und jemand anderes in Ihrem Team könnte Laravel 4.1.31 mit event-dispatcher 2.6.5 haben, es würde alles davon abhängen, wann Sie das letzte Mal den Composer installiert haben.
Wenn Sie also Ihre composer.lock Datei im Versionssystem wird die genaue Version dieser Unterabhängigkeiten gespeichert, so dass Sie und Ihr Teamkollege eine Composer-Installation durchführen (dies ist die Art und Weise, wie Sie Ihre Abhängigkeiten auf der Grundlage einer composer.lock ) erhalten Sie beide die gleichen Versionen.
Was ist, wenn Sie aktualisieren wollen? Dann führen Sie in Ihrer Entwicklungsumgebung aus: composer update
erzeugt dies eine neue composer.lock Datei (wenn es etwas Neues gibt) und nach dem Testen und QA-Test und Regressionstest und so weiter. Sie können es für alle anderen zum Herunterladen der neuen composer.lock da es sicher aufgerüstet werden kann.
3. Sie sollten Ihre tatsächlichen Abhängigkeiten nicht versionskontrollieren weil es keinen Sinn macht. Mit der composer.lock können Sie die genaue Version der Abhängigkeiten installieren und müssen sie nicht festschreiben. Warum sollten Sie 10000 Dateien mit Abhängigkeiten zu Ihrem Projektarchiv hinzufügen, wenn Sie sie nicht aktualisieren sollen. Wenn Sie eine dieser Dateien ändern müssen, sollten Sie sie abspalten und Ihre Änderungen dort vornehmen. Und wenn Sie sich Sorgen darüber machen, dass Sie die tatsächlichen Abhängigkeiten jedes Mal bei einem Build oder Release holen müssen, hat Composer verschiedene Möglichkeiten, dieses Problem zu lindern, Cache, Zip-Dateien, etc.