2017-10-30 9 views
1

Jetzt, dass Laravel 5.5 unterstützt nur PHP > 7.0, was kann ich tun, um sicherzustellen, dass ich es mit 5.6.x kompatibel halten kann? Ich bin in einer 5.6 Umgebung, Upgrade PHP ist keine Option, und ich möchte sicherstellen, dass composer update nichts brechen wird, wenn es zu jeder Zeit in der Entwicklungsumgebung lief.Sicherstellen, dass Laravel kompatibel mit PHP 5.6.x bleibt

Mit Blick auf Artikel scheint es, dass Downgrade nicht einfach ist, also möchte ich nur sicherstellen, dass irgendwie Dinge nicht kaputt gehen.

Hier ist der Komponist Eintrag/Abhängigkeitsliste, laravel als 5.4.*

angegeben
{ 
    "require": { 
     "php": ">=5.6.4", 
     "laravel/framework": "5.4.*", 
     "laravel/tinker": "~1.0", 
     "laravelcollective/html": "^5.4.0" 
    }, 
    "require-dev": { 
     "fzaninotto/faker": "~1.4", 
     "mockery/mockery": "0.9.*", 
     "phpunit/phpunit": "~5.7" 
    }, 
} 

Also, bedeutet das, dass ich kann nicht länger laufen composer update? Oder bin ich immer noch sicher, meine anderen Pakete zu aktualisieren, z. die oben genannten, und laravel bleiben 5.4.36?

Ich weiß, die Spezifikation in Composer sagt dem Paket, in der 5.4.x Bereich zu bleiben, möchte ich nur sicherstellen, und auch ich mache mir Sorgen, dass die Abhängigkeiten nicht sicher rückwärtskompatibel bleiben? Ich frage mich, ob ich gerade composer update für jetzt vergessen sollte, oder wenn ich die composer.json sorgfältiger anpassen muss.

Beachten Sie auch, meine nächsten Projekte, die ich spin up, müssen PHP 5.6 auch sein, und ich werde hier von einer maßgeschneiderten Laravel-Basis wurde das Klonen, die "laravel/framework": "5.4.*", immer haben werden, so werde ich so lange gut, wie Das ist so festgelegt?

aktualisieren

Als Reaktion auf @Eric Browns Antwort, und einige der Forschung auf packagist, ist es das, was ich die wichtigsten Abhängigkeiten angepasst (+ laravelcollective/html) zu:

"require": { 
    "php": ">=5.6.4", 
    "laravel/framework": "5.4.*", 
    "laravel/tinker": "1.0.*", 
    "laravelcollective/html": "5.4.*" 
}, 
"require-dev": { 
    "fzaninotto/faker": "1.7.*", 
    "mockery/mockery": "0.9.*", 
    "phpunit/phpunit": "5.7.*" 
}, 

Ich könnte init ein neues Git Repo mit einer Kopie der Laravel/Vendor-Dateien als nächstes, und dann dieses in ein neues Verzeichnis legen, das ich nicht wirklich mit Untermodulen verwechseln will, so dass es am Ende vielleicht ein Tarball sein wird, der es bekommen kann mit dem Original verpflichtet.

+0

PHP 5.6 wird [nicht mehr aktiv unterstützt und erhält nur für ein weiteres Jahr Sicherheitsupdates] (http://php.net/supported-versions.php). Nach diesem Punkt wird es gefährlich und unverantwortlich sein, es weiter zu betreiben. ** Jetzt ist es an der Zeit, mit der Planung einer Migration auf PHP 7 zu beginnen. – ceejayoz

+0

Guter Punkt! Es liegt an der Corp. Da ich keine Kontrolle über diesen Aspekt habe, kann ich ihnen nur etwas langfristiges stabiles für ihre aktuelle infra geben, dann wird die Anpassung des composer.json leicht genug sein, wenn sie sich für ein Upgrade entscheiden.Ich werde deinen Kommentar in der Readme-Datei oder irgendwo anders fett notieren! – blamb

+0

Stellen Sie sicher, dass Ihre Datei 'composer.lock' in der Quellcodeverwaltung enthalten ist. Es enthält ** genaue ** Versionen von allem, was zum Zeitpunkt der Erstellung installiert wurde, und lässt Sie 'Composer-Installation' durchführen, um genau diese Versionen zu installieren. Ein "Composer-Update" aktualisiert die '.lock' -Datei mit neuen Paketen, so dass Sie in der Quellcodeverwaltung eine alte' .lock'-Datei auschecken und auf diese exakten Versionen zurückstufen können. – ceejayoz

Antwort

1

Standardmäßig wird Laravel nicht auf neuere Versionen von Laravel aufrüsten, da, wie Sie in Ihrer composer.json-Datei angegeben haben, "laravel/framework": "5.4.*" angibt, dass Laravel immer Version 5.4.some_version_number sein muss. Sie sollten sich nicht zu sehr um die Rückwärtskompatibilität kümmern müssen, aber wenn Sie weiterhin Updates zu potenziellen Fehlern oder Sicherheitslücken erhalten möchten, fügen Sie ein * anstelle der letzten Zahl hinzu, z. B. 4.3. * Statt 4.3.1.

Es wäre auch sehr hilfreich zu lernen, Git Repositories wie Github oder Bitbucket zu verwenden und eine aktuelle Version dort zu speichern. Sie sind perfekt für die Versionskontrolle und stellen sicher, dass bei Entwicklung oder Updates nichts zu schief geht. Das hat mich persönlich öfter gerettet, als ich zählen möchte.

+0

Schlägst du vor, dass ich eine "aktuelle Version" des Frameworks selbst, z. der Ordner "Vendor", z.B. entfernen Sie es aus .gitignore, oder vielleicht den gesamten 'Laravel'-Ordner, in einem separaten Repo und speichern Sie es als Backup? Und würdest du mir empfehlen, dass ich den Asterix auch zu 'tinker',' kollektiv' und 'faker' hinzufüge? – blamb

+0

Ja, hauptsächlich deshalb, weil in Ihrem Fall die Aktualisierung dazu führen könnte, dass etwas schief geht, wenn die Updates nur PHP7 verwenden, was unwahrscheinlich, aber immer noch möglich ist. Es ist nur eine zusätzliche Ebene der Sicherheit, sollte ein Update schief gehen. –

Verwandte Themen