Ich habe ein Projekt geerbt, die mit PHP 5.3.x, Symfony2 und Komponisten für Abhängigkeitsmanagement gebaut wurden.Wie liest man die composer.lock-Datei?
Die composer.json Datei hat viele Zeilen wie folgt: "vendorname/library" : "dev-master"
für die Version der Bibliotheken im Einsatz. Es wurde zuletzt im August 2012 bearbeitet und funktioniert dann eindeutig, da die composer.lock-Datei existiert und das Projekt auf einem Server bei unserem Host läuft.
Zum Glück mit 1 kleinen Tweak zu composer.lock, habe ich composer install
zu arbeiten, aber was ich versuche, jetzt zu tun, ist einige Fehler beheben, die ich bekomme, wenn Composer-Update ausgeführt wird. Es gibt viele Posts online über Component Abhängigkeits-Hölle - und ich bin in einem undichten Boot auf dem Fluss Styx, der dorthin geht, zieht mir die Haare aus.
Kurz gesagt, vor ein paar Jahren, als composer.lock erstellt wurde, arbeitete das Projekt mit den damals aktuellen Versionen von "dev" von Dutzenden von mitgelieferten Bibliotheken, aber jetzt, wo ich versuche, die Unordnung aufzuräumen, Ich würde gerne passende Versionen in composer.json schreiben und versuchen, Dinge aus einem bekannten Zustand zu aktualisieren.
Wie finde ich heraus, welche Versionen tatsächlich von composer install installiert werden? Oder welche Schlüssel/Werte in der composer.lock-Datei sagen Ihnen das?
Ich habe viele Github-Commit-Hashes in der composer.lock-Datei, aber es ist nicht klar, angesichts eines willkürlichen Commit-Hash, was die am nächsten markierte Version wäre, die entsprechende Zeile in composer.json mit zu ersetzen.
Hier ist ein Beispiel Linie von composer.json:
"doctrine/doctrine-bundle" : "dev-master",
und hier ist der entsprechende Knoten in composer.lock für dieses Modul:
{
"name": "doctrine/doctrine-bundle",
"version": "dev-master",
"target-dir": "Doctrine/Bundle/DoctrineBundle",
"source": {
"type": "git",
"url": "http://github.com/doctrine/DoctrineBundle.git",
"reference": "d3c930599723c8343472a5791b0f5909a4111a73"
},
"dist": {
"type": "zip",
"url": "https://github.com/doctrine/DoctrineBundle/zipball/d3c930599723c8343472a5791b0f5909a4111a73",
"reference": "d3c930599723c8343472a5791b0f5909a4111a73",
"shasum": ""
},
"require": {
"doctrine/dbal": ">=2.2,<2.4-dev",
"php": ">=5.3.2",
"symfony/doctrine-bridge": "2.1.*",
"symfony/framework-bundle": "2.1.*"
},
"require-dev": {
"doctrine/orm": ">=2.2,<2.4-dev",
"symfony/validator": "2.1.*",
"symfony/yaml": "2.1.*"
},
"suggest": {
"doctrine/orm": "The Doctrine ORM integration is optional in the bundle."
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-0": {
"Doctrine\\Bundle\\DoctrineBundle": ""
}
},
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "[email protected]"
},
{
"name": "Benjamin Eberlei",
"email": "[email protected]"
},
{
"name": "Symfony Community",
"homepage": "http://symfony.com/contributors"
}
],
"description": "Symfony DoctrineBundle",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"DBAL",
"Database",
"ORM",
"Persistence"
],
"support": {
"source": "https://github.com/doctrine/DoctrineBundle/tree/master",
"issues": "https://github.com/doctrine/DoctrineBundle/issues"
},
"time": "2012-09-10 15:12:44"
}
ich bin, dass Komponisten raten installiert die dist- > uRL oder Quellen-> url von composer.lock, aber ich habe Module mehrere Dutzend bis zu gehen und sich fragen, wie die nächste (nach Datum) zu finden Tag für jede referenzierte Bibliothek eine vernünftige composer.json-Datei erstellen vorwärts mit der Aktualisierung bewegen unser Code.
Um die aktuell installierten Versionen zu finden, können Sie 'composer show -i' verwenden, von [diese Antwort] (http://stackoverflow.com/questions/15185459/how-to-get-list-of-all-installed) -Packages-mit-Version-in-Composer). Sollte dich beginnen. – geoB