Ein paar Zahlen zur PHP-Unterstützung
PHP Extended Lifecycle Support (ELS) ermöglicht es Ihnen, ältere PHP-Versionen weiter zu verwenden und gleichzeitig Sicherheitsupdates für die Sprache zu erhalten, ohne dass Sie Ihre Anwendung ändern müssen.
Die erste und offensichtliche Frage könnte lauten: "Warum sollte ich das tun, anstatt einfach PHP zu aktualisieren?" Angenommen, Ihr Unternehmen kann die bestehende Codebasis Ihrer Anwendung auf eine neuere Sprachversion aktualisieren und dabei sicherstellen, dass keine Bugs eingeführt werden, und jedes Szenario gründlich testen, bleibt immer noch das Problem, dass auch die Abhängigkeiten migriert werden müssen.
Abhängigkeiten sind nur das Problem von jemand anderem
...ist nicht die richtige Denkweise. Abhängigkeiten werden in dem Moment zu Ihrem Problem, in dem sie zu Ihrer Codebasis hinzugefügt werden. Ein Problem in einer Abhängigkeit kann Ihre Anwendung zum Scheitern bringen oder sie anfällig für Sicherheitsprobleme machen, unabhängig von der Qualität und Sicherheit Ihres eigenen Codes.
Aber verlassen Sie sich nicht nur auf unser Wort. Hier sind einige Statistiken, die das Problem verdeutlichen.
Das Packagist-Archiv-Projekt (https://github.com/bettergistco/PackagistArchive) "enthält praktisch jedes aktive Paket und Tausende von inaktiven Paketen, die auf Packagist veröffentlicht wurden", dem wichtigsten Repository für PHP-Pakete in der Branche.
Zu den interessanten Statistiken gehört eine Tabelle mit der maximal gemeldeten Versionsnummer der Pakete:
Version | Anzahl
---+---
5.0 | 1038
5.1 | 1388
5.2 | 3205
5.3 | 34318
5.4 | 58898
5.5 | 76834
5.6 | 96168
7.0 | 121782
7.1 | 149362
7.2 | 171130
7.3 | 183333
7.4 | 206935
8.0 | 195895
8.1 | 216676
8.2 | 215960
8.3 | 215519
Wir stellen fest, dass eine überwältigende Anzahl von Paketen nur die PHP-Version 5.6 unterstützt, wobei über 96.000 Pakete diese Version als unterstützte Version angeben. Das bedeutet, dass etwa 1 von 20 Paketen aller verfügbaren PHP-Pakete nicht auf eine neuere Version von PHP aktualisiert werden kann, ohne dass zusätzliche Anstrengungen unternommen werden müssen, um die Kompatibilität zu gewährleisten.
Wenn 1 zu 20 überschaubar erscheint, bedenken Sie, dass ein durchschnittliches Projekt Dutzende von Abhängigkeiten hat, von einfachen Hilfsmitteln bis hin zu komplexen Frameworks.
Aber sicher wird jeder Paketbetreuer seine Pakete aktualisieren
...oder nicht. Über 29.000 Pakete sind als "tot" gekennzeichnet, was bedeutet, dass sie nicht mehr aktiv unterstützt werden. Das hält Entwickler jedoch nicht davon ab, sie zu benutzen, selbst Jahre nachdem sie zuletzt aktualisiert wurden. Die Einführung dieser Pakete in eine neue Version von PHP, für die sie nie entwickelt wurden, ist ein sicherer Weg, um ihre Funktionalität zu zerstören, vor allem, wenn man bedenkt, dass PHP dazu neigt, bei jedem Versions-Upgrade Änderungen vorzunehmen, die die Funktionalität zerstören.
PHP aufrüsten: Die richtige Wahl, aber nicht immer durchführbar
Ein Upgrade auf eine neuere Version von PHP ist das ideale Szenario. In der Praxis sind jedoch Situationen wie nicht unterstützte Abhängigkeiten, der erforderliche Aufwand, die mit einem solchen Unterfangen verbundenen Kosten und das Fehlen eines unmittelbaren und greifbaren Nutzens für die Anwendung, der über das "Funktionieren wie zuvor" hinausgeht, weniger attraktiv.
Die meisten Unternehmen suchen dann nach Alternativen, um die Sicherheit von PHP-Updates zu gewährleisten, ohne die damit verbundenen Probleme in Kauf nehmen zu müssen. Genau hier kann PHP ELS helfen. Mehr dazu erfahren Sie hier.