Wie funktioniert die Eigenschaft "Replace" mit Composer?
Also, wie funktioniert der " ersetzen " - Eigenschaft arbeiten mit Komponist? Ich habe gelesen, das der Komponist Dokument aber immer noch nicht verstanden. Auf der Suche nach mehr info noch nicht meine Fragen beantwortet.
Wenn ich mir den composer.json-Datei auf Laravel/Framework auf github. Ich kann nicht sehen, wie replace funktioniert. Kann mir jemand erklären wie das funktioniert? Und was die variable "self.version" gleich?
InformationsquelleAutor der Frage Ilyes512 | 2013-09-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Komponisten Dokumentation gibt zwei grundlegende Beispiele. Ich werde versuchen zu erklären:
Angenommen, Ihre software verwendet
original/library
undother/package
die selbst erfordert auchoriginal/library
.Nun ist man der Meinung, dass
original/library
Bedürfnisse zu integrieren, ein feature, aber die Verantwortlichen lassen keine Ihrem Vorschlag passieren in Ihrem Paket. Sie entscheiden Gabel, die Bibliothek unter dem Namenbetter/library
- und tag-ein neues release.Zurück zu Ihrer software. Natürlich sollte es beginnen, mit
better/library
so dass Sie verlangen, dass statt, aber dasother/package
Bedarf noch deroriginal/library
- code-Duplizierung! Wie kann man das machen andere Paket zur Verwendung Ihresbetter/library
stattdessen ohne auch "forking" es und nur die änderung der Komponist.json (Sie sind immer noch kompatibel zuoriginal/library
so dass es funktionieren sollte)?Fügen Sie einen Schlüssel ersetzen, um Ihre
composer.json
:Nun Composer weiß, dass jedes Paket, das von Ihrem
better/library
ist ebenso gut wie dieoriginal/library
wenn es um das auflösen der Abhängigkeiten derother/package
.Den gleichen Regeln, einem etwas anderen Blickwinkel: die Forderung Komponenten einer framework ist ein guter Ansatz für eine andere Komponente, die einige feature. Aber wenn Sie verlangen den vollen Rahmen, in Ihrer software, und eine Bibliothek, die später erfordert auch eine Komponente des Frameworks, die
replace
Deklaration der Rahmen ermöglicht es, den Composer zu installieren, die einzelne Komponente doppelt, denn es ist bereits im vollen Rahmen.InformationsquelleAutor der Antwort Sven
Wenn Sie erstellen Sie Ihre eigenen Paket, definieren Sie in Ihrem
composer.json
welche Art von Paketen es tutbieten
die im Grunde sagt Komponistdass Ihr Paket hat es bereits installiert, so dass keine Notwendigkeit, es zu installieren.Wenn Sie
replace
Eigenschaftsagt der Komponist, dass Ihr Paket ersetzen will, die original-Verpackung mit Ihrem eigenen Gabel, so dass die anderen Pakete nicht installieren müssen.Zum Beispiel, wenn
a/a
- Paket erfordertb/b
und Sie sagen Sie zu ersetzenb/b
ist, wird es nicht heruntergeladen werden über den Komponisteninstall
/update
.Dies erklärt sich in mehr details hier: Wie funktioniert die "ersetzen" - Eigenschaft arbeiten Komponisten?
InformationsquelleAutor der Antwort kenorb