In erster Linie könnte man meinen das diese Frage relativ unwichtig ist – warum verwendet man nicht einfach die neuste PHP Version? Es gibt diesbezüglich ein paar Dinge die ich in den letzten Jahren gelernt habe, vielleicht könnt ihr von meinen Erfahrungen profitieren 🙂

Alles ab PHP 7 ist gut, oder?

Mit PHP 7 wurden viele tolle neue Features vorgestellt und man könnte meinen das es „okay“ wäre, wenn man PHP 7.0 als Basis für sein neues Projekt wählt… Dem ist aber aus einem ganz einfachen Grund nicht so:

In erster Linie solltet ihr immer die Homepage von PHP prüfen bzgl. der aktiv unterstützten Versionen. Hier sehen wir auf einen Blick welche PHP Version für uns nicht in Frage kommen sollte, da der aktive Support abgelaufen ist. Schauen wir folgende Grafik von php.net an:

Grafische Darstellung der aktiven PHP Entwicklung

Die rot markierten PHP Versionen (5.6, 7.0, 7.1 und 7.2) werden offiziell nicht länger mit Sicherheits-Fixes ausgestattet und sollten keinesfalls genutzt werden. Die PHP Version 7.3 wird zwar noch mit Sicherheits-Fixes veröffentlicht, jedoch nicht mit Bugfixes die nicht Sicherheitsrelevant sind.

Lediglich PHP 7.4 und 8.0 werden aktiv entwickelt – das heißt Bugfixes und Verbesserungen.

Okay, also einfach auf PHP 8 setzen?

Ja und nein… Einerseits ist die PHP Version 8 (bzw. 8.0.3) die aktuellste Version mit allen Features und Bugfixes, doch wir haben hier zwei Probleme:

Problem 1 – Nicht alle Bibliotheken unterstützen PHP 8

Wenn wir ein neues Projekt starten ist ein häufiger „erster Schritt“ unsere üblichen Bibliotheken via composer zu installieren. Hierbei werden wir aber schnell bemerken das nicht zwangsläufig alle unsere Bibliotheken mit PHP 8 kompatibel sind. Vor allem, wenn wir ein paar ältere Bibliotheken nutzen die nicht mehr so viel Aufmerksamkeit bekommen.

In diesem Fall gibt es drei Optionen:

  1. Den Entwickler der Bibliothek bitten die Kompatibilität einzubauen
  2. Die Bibliothek „forken“, Kompatibel machen und einen Pull-Request erzeugen – bis dahin den eigenen Fork verwenden
  3. Eine andere Bibliothek finden die sich in aktiver Entwicklung befindet

Problem 2 – Kinderkrankheiten von PHP 8

Dieses „Problem“ ist zwar zu vernachlässigen, sollte aber im Hinterkopf behalten werden. Wie bei allen neuen Major Software Versionen haben die „frühen“ Ableger häufig noch kleinere Problemchen, die nach den ersten Wochen erst auffallen und beseitigt werden. Daher würde ich niemandem raten beim aufsetzen eines Servers die PHP Version 8.0.0 zu nutzen – glücklicherweise sind wir zum Zeitpunkt dieses Beitrags schon bei 8.0.3 🙂

Solltet ihr dennoch das Pech haben einen Fehler zu finden könnte es sich als sehr schwierig erweisen diesen als solchen zu erkennen und einen Workaround zu nutzen. Da die Major Version noch recht „frisch“ ist kann in der Community das nötige Know-How fehlen um bei Fehlern auszuhelfen.

Kompatibel bleiben!

Meiner Meinung nach macht es am meisten Sinn auf PHP 7.4 zu setzen um möglichst sicher im Bezug auf meine Lieblings Bibliotheken und Frameworks zu sein. Zusätzlich gibt es derzeit keine neuen Features oder Funktionen die ich zwingend nutzen muss.

Wichtig hierbei: auch wenn wir nicht auf Basis von PHP 8 entwickeln sollten wir definitiv Kompatibel dazu sein. Schaut euch noch mal die Grafik oben an: PHP 7.4 wird nur noch bis Ende diesen Jahres mit Bugfixes versorgt und bis Ende 2022 mit Sicherheits-Fixes. Früher oder später müssen wir also auf PHP 8 updaten.

Es ist außerdem wichtig zu prüfen „wo“ die Applikation später laufen soll – werdet ihr sie selbst hosten und habt volle Kontrolle über die verfügbaren PHP Versionen? Oder muss die Applikation auf möglichst vielen Systemen lauffähig sein? In diesem Fall könnte es sogar Sinnvoll sein PHP 7.3 zu verwenden, da nicht jedes Betriebssystem die neusten PHP Versionen anbietet.

Ein weiterer Faktor ist das Projekt selbst, bzw. dessen Deadline: wie schnell muss es fertig werden? Wenn dieses Datum noch Monate entfernt ist spricht es für eine Entwicklung auf Basis von PHP 8. Vor allem, wenn die Deadline in der zweiten Jahreshälfte oder sogar noch später liegt. In diesem Fall macht es Sinn die Augen auf PHP 8.1 zu richten – zumindest im Bezug eine anstehende Migration… Planung ist alles!

Eine kleine Checkliste

Damit der Prozess überschaubarer wird, hier eine kleine Checkliste:

  • Aktuelle PHP Versionen prüfen, via php.net
  • Braucht ihr die aktuellsten Features / Funktionen?
  • PHP Kompatibilität eurer verwendeten Bibliotheken prüfen
  • Wann ist eure Deadline? Je weiter diese in der Zukunft liegt macht es Sinn sich die anstehenden PHP Version anzusehen (zwecks anstehender Migration)
  • Für wen ist die Applikation? Muss diese auf möglichst vielen (Kunden-) Maschinen laufen? Nicht jedes Betriebssystem ermöglicht sofort die neusten PHP Versionen zu verwenden

Wie geht ihr vor, wenn ein neues Projekt ansteht? Lasst es mich in den Kommentaren wissen 🙂 Bis zum nächsten Mal wünsche ich euch eine schöne Oster-Feiertage und natürlich Happy Coding!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.