Gestern ist die neue Hauptversion der weit verbreiteten Programmiersprache PHP8 veröffentlicht worden. Das wirft die Frage auf, wie man den Umstieg auf die neue PHP-Version gestalten sollte.

PHP8 bringt viele Neuerungen

Es gibt viel Neues in PHP8: Neben dem Just-in-time-Compiler, der direkt aus dem PHP-Bytecode nativen Code erzeugt, bringen auch die Op-Cache-Erweiterung und das Vorladen deutliche Geschwindigkeitsverbesserungen.

Hinzu kommen u.a. noch diese neuen Funktionen und Verbesserungen:

  • Validierung für abstrakte Eigenschaftsmethoden
  • Constructor Property Promotion
  • Inkompatible Methodensignaturen
  • Arrays, die mit einem negativen Index beginnen
  • Union Types 2.0
  • Konsistente Typ-Fehler für interne Funktionen
  • throw Expression
  • Weak Maps
  • Nachkomma in Parameterlisten
  • ::class syntax bei Objects
  • Attributes v2

Das PHP-Projekt besitzt schon seit einigen Jahren verlässliche Release-Zyklen, die sicherstellen, dass neue PHP-Versionen für alle gängigen Betriebssysteme zeitnah verfügbar sind – man muss die Sprache schon lange nicht mehr mühsam selbst kompilieren. Von daher könnte man den Umstieg für einfach halten.

Altlasten dauerhaft entsorgt

Man muss aber auch beachten, dass mit PHP8 viele „Altlasten“ endgültig aus der Programmiersprache entfernt wurden, was durch Probleme existierender Anwendungen bei der Rückwärtskompatibilität die Migration alter und insbesondere umfangreicher Projekte nicht geraten erscheinen lässt. Diese Hürde ist sicher größer, als es die beim Umstieg auf PHP7 war.

Wenn man allerdings eine neue Anwendung entwickelt, dann spricht nichts dagegen, von vornherein direkt auf PHP 8 zu setzen und damit von den neuen Sprachfeatures deutlich zu profitieren.

PHP 7 und 8 im Parallelbetrieb

Inzwischen kann man ja auch problemlos verschiedene PHP-Versionen nebeneinander laufen lassen, weshalb es einfach möglich ist, neue Anwendungen und auch neue Funktionalitäten (als isolierte Services) in PHP8 zu entwickeln, während eine Legacy-Anwendung noch parallel unter PHP 7 läuft…