2016-04-21 4 views
6

In der composer.json ist es möglich, ein Feld "Version" anzugeben; hier ist ein Beispiel:Was bedeutet das Feld "Version" in composer.json?

{ 
    "name": "vendor/dummy_package", 
    "description": "Dummy package", 
    "version": "1.0.0" 
} 

Welches ist die Bedeutung dieses Feldes ist, da es nicht zwingend notwendig zu sein scheint?

Wird es verwendet, um erforderliche Versionen des vendor/dummy_package zu vergleichen?

In diesem Fall gewinnt es Tag?

Vielen Dank!

Antwort

9

Die Version ist erforderlich, damit Composer das Paket als eine Abhängigkeit auflöst. In den meisten Fällen (und zu 100% auf Packagisten) wird die Version jedoch aus den Tags und Zweigen im Repository übernommen.

Wenn die Version in der Datei composer.json vorhanden ist, wird sie bei Zweigen ignoriert, bei Tags muss sie jedoch mit dem Tag-Namen übereinstimmen, andernfalls wird Composer das Tag als ungültig betrachten, da es widersprüchliche Versionsinformationen enthält. Aus diesem Grund empfehlen wir in der Regel, dass die Benutzer die Version vollständig verlassen, da dies die Wahrscheinlichkeit von Problemen verringert.

In einigen Fällen, wenn Sie beispielsweise artifact repository verwenden möchten, müssen Sie die Version in composer.json angeben.

Fazit: Wenn Sie nicht wissen, dass Sie es in benötigen, ist es dann auslassen :)