Blog

Verschiedene Treppen
Foto: © francescoch/iStock

Blog

Updates, Updates, Updates

PHP 8.1: Endlich für alle Projekte

Ich kann es schreiben: Mit dem Update auf PHP 8.1 fiel ein kleiner Stein vom Herzen. PHP ist eine Skriptsprache, die dynamische Webanwendungen ermöglicht. Das klingt abstrakt und technisch, aber vielleicht hilft die Vorstellung, dass erst PHP WordPress zum Laufen bringt. Die gesamte serverseitige Programmierung von WordPress basiert auf PHP, aber auch andere Content-Management-Systeme wie Kirby auf meinen Webservern damit.

PHP 8.1 wurde vor ziemlich genau einem Jahr veröffentlicht. Ein Update am Tag der Veröffentlichung kann man sich aber praktisch schenken: Mit jedem sogenannten Major-Update fliegen veraltete Funktionen aus dem Umfang von PHP, andere Funktionen rutschen nach und bekommen den Stempel »deprecated« (und fliegen zukünftig), aber es kommen auch neue Features nach. Auch an der Performance und Sicherheit wird kontinuierlich gearbeitet. Das ist sinnvoll, aber es heißt auch, dass die Anwendungen, die mit PHP laufen, mitziehen müssen.

WordPress hat Anfang des Jahres seinen Code für PHP 8.1 fit gemacht, aber auch dann müssen im nächsten Schritt noch die Plug-ins nachlegen. Hier bewährt sich schon bei der Erstellung der Website die Praxis, möglichst wenig auf Drittanbieter zurückzugreifen – etwa durch einen sinnvollen Einsatz von Bordmitteln und einer tiefgehenden Recherche, wie es um die Weiterentwicklung und Sicherheit potenziell-interessanter Plug-ins steht. Trotzdem geht es nicht ohne Plug-ins von Drittanbietern, letztlich. Inzwischen sind meine üblichen Plug-ins aber allesamt bereit für PHP 8.1, sodass die Konfiguration der Webserver entsprechend aktualisiert werden konnte.

Bei Websites, die mit Kirby laufen, habe ich weniger auf eine Unterstützung für PHP 8.1 warten müssen: Zum einen, weil der Workflow hier ein anderer ist – viele Drittanbieter-Plugins braucht es in der Regel nicht. Zum anderen wird Kirby auch wirklich vorbildlichst von den Entwickler*innen gepflegt: Kirby war mit PHP 8 und PHP 8.1 bereits am Tag der jeweiligen Erscheinung kompatibel.

PHP bekommt in der Version 8.1 noch ungefähr zwei Jahre Sicherheitsupdates, was heißt, dass allerhöchstens in den nächsten zwei Jahren sowieso der ganze Trott wieder mitziehen muss, um aktuell und sicher betrieben werden zu können. Fürs Erste ist aber soweit alles getan.

Eigene Plug-ins

Die Anpassungen an aktuelle und kommende PHP-Versionen betreffen auch eigene Entwicklungen: Für Kalender habe ich beispielsweise mit »strftime« bei Datumsangaben eine PHP-Funktion im Einsatz, deren Unterstützung zukünftig auslaufen wird. Adäquaten Ersatz gibt es aber.

Außerdem habe ich für das nächste Jahr den Vorsatz, diese eigenen Plug-ins teilweise als Open-Source-Software zu veröffentlichen. Zum einen, weil ich selbst viel freie Software nutze und damit vielleicht auch etwas zurückgeben kann. Zum anderen aber auch, weil ich mir von diesem Austausch auch Lerneffekte verspreche. Einen allerersten Mini-Anfang macht kirby3-bots, das ich bei meinen Kirby-Projekten immer einsetze, um für die Crawler der Suchmaschinen Daten wie die Sitemap oder Crawl-Einstellungen wie robots.txt bereitzustellen.

WordPress 6

Im Frühjahr dieses Jahres wurde außerdem WordPress 6 veröffentlicht. Die Änderung, auf die mich am meisten gefreut habe, wurde leider von den Entwickler*innen wieder zurückgezogen: WordPress sollte Bilder standardmäßig im WEBP-Format generieren, das Bilder deutlich effizienter komprimiert, als es zum Beispiel mit dem JPEG-Format möglich wäre. Praktisch bedeutet das eine schnellere Ladezeit bei gleichbleibender Qualität. Um den Browser-Support für WEBP steht es inzwischen gut. Die berechtigte Kritik war aber, dass WEBP aber wiederum von vielen Feedreadern, E-Mail-Clients und mobilen Apps derzeit noch unzureichend unterstützt wird. Mit Kirby nutze ich WEBP schon länger, auch, weil es Fallbacks mit JPEG sehr bequem ermöglicht, falls es vom Endgerät doch noch nicht verstanden wird. Trotzdem: WordPress 6 hat einige kleinere und ein paar größere Änderungen mit sich gebracht, auch hinsichtlich Stabilität und Leistung. Auch weitere Blöcke für den Gutenberg-Editor kamen hinzu.

Schlussbemerkungen

Hinzu kamen in der letzten Zeit auch kleinere Änderungen meinerseits, zum Beispiel Nachjustierungen im serverseitigen Caching (jetzt mit Redis) und browerseitigen Caching. Das trägt zu verbesserten Ladezeiten bei. Für mehr Sicherheit sorgt eine Login-Konfiguration mit einem zweiten Faktor: So müssen sich alle Benutzer*innen nicht nur mit ihrem Passwort authentifizieren, sondern zusätzlich auch mit einem Code, der ihnen per E-Mail zugestellt wird. Auch die Verwendung von Einmal-Passwörtern (OTP), beispielsweise mit dem »Google Authenticator«, ist möglich.

Aktuell ist alles auf dem aktuellen Stand, sozusagen. 😊 Vielleicht erklärt der Blogbeitrag auch, warum nicht immer auf den Tag genau die neueste Software installiert ist: Ein größeres Update bringt auch einen größeren Rattenschwanz mit sich, vor allem, weil ich die Projekte auch so weit wie möglich gemeinsam administrieren möchte und dazu eine gemeinsame Software-Basis dafür unumgänglich ist. Und wenn das möglich scheint, teste ich erst sukzessive, ob nicht doch unerwartete Probleme auftauchen. Wenn Sie als Kundin oder Kunde von dieser Arbeit so wenig wie möglich mitbekommen, ist das eigentlich ein gutes Zeichen: Das heißt, dass die gewohnte Stabilität anhielt, während Verbesserungen für Sicherheit und Performance einflossen.