PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for 2019

PHP 7.4.0 RC 5: Selbst kompilieren und testen

without comments

Letzte Woche Donnerstag ist der nach Plan fünfte Release-Candidate von PHP 7.4 erschienen: RC5. Es wird noch einen weiteren Release-Candidate geben, bevor hoffentlich am 28. November 2019 das finale PHP 7.4.0 GA erscheinen wird.

Es ist also höchste Zeit, dem PHP-Team dabei zu helfen, Bugs zu finden. Eigentlich sollte man das schon früher getan haben, aber besser spät als nie!

PHP 7.4 bringt einige interessante neue Features (Array Spread Operator, Typed Properties, Preloading, FFI, Improved Type Variance, Arrow Functions, …), aber auch wieder ein paar Prozent mehr Performance. Eine komplette Liste aller neuen Funktionen, Änderungen, Deprecations, backwards-incompatible Changes etc. befindet sich in der UPGRADING Datei.

Selbst kompilieren

Um die PHP Tests durchlaufen zu lassen, kompilieren wir PHP 7.4 RC5 selbst. Natürlich kann das dann entstandene PHP auch genutzt werden, beispielsweise um die PHPUnit Tests seiner Projekte durchlaufen zu lassen, oder mal einen Test-Webserver zu konfigurieren (Apache, PHP-FPM).

Weiterlesen »

Written by Michael Kliewe

November 4th, 2019 at 9:15 pm

Posted in Allgemein

Tagged with , ,

Applikationen migrieren von PHP 5.6 auf PHP 7.3

with one comment

PHP 7.0 ist nun schon über drei Jahre verfügbar, 7.3 ist auch schon wieder 9 Monate alt. PHP 7.4 wird Ende diesen Jahres erscheinen.

In den letzten 2 Jahren habe ich mehrere Projekte von PHP 5.6 auf eine 7er Version bringen dürfen. Zwei davon waren etwas größer, von denen möchte ich hier berichten.

Ich hatte in einem Artikel „PHP 7: Migration eines Projekts„, der kurz vor dem Release von PHP 7.0 erschien, schon einige kleine Tipps gegeben wie man einen Überblick bekommen kann über die zu bearbeitenden Baustellen. Heute soll es etwas mehr ins Eingemachte gehen.

Die 2 Projekte haben jeweils über 100.000 Zeilen „eigenen Code“, also ohne externe Libraries, so dass ich sie als „groß“ bezeichnen möchte. Das eine Projekt wurde zu Zeiten von PHP 5.3 gestartet und entwickelt, hat in den letzten 9 Jahren auch einiges an Pflege und Aktualisierungen erfahren. Externe Bibliotheken wurden ab und zu erneuert, es wurde teils auf Composer umgestellt, und hat auch in den letzten Jahren das ein oder andere PHP 5.4, 5.5 und 5.6 Feature erhalten.
Das andere Projekt ist etwas älter und stammt aus dem Jahr 2009, d.h. PHP 5.2 war damals aktuell, und es wurde noch kompatibel zu PHP 4 erstellt, da noch nicht alle Welt PHP 5 nutzte. Außerdem hat das Projekt seitdem kaum Aktualisierungen bekommen, quasi alles stammt noch aus der damaligen Zeit, ihr werdet später hier im Artikel sehen was ich damit meinen könnte 🙂

PHPStorm „Deprecated“-Inspection

Also gut, zuerst wollte ich mir jeweils einen Überblick verschaffen, und haben diverse Analyse-Tools über die Projekte laufen lassen. Als erstes ließ ich die „Deprecated“-Inspection von PHPStorm laufen. Dazu habe ich die genutzte PHP-Version auf 7.3 gestellt, und danach mittels Code->“Run inspection by name“->“Deprecated“ laufen lassen. Im ersten Projekt waren es nur 14 Einträge, recht übersichtlich und schnell zu beheben.
Im zweiten Projekt jedoch wurden 79 Probleme erkannt. Die häufigsten waren:

Weiterlesen »

Written by Michael Kliewe

September 19th, 2019 at 11:56 pm