ILIAS-Blog

Neuigkeiten und Hintergründe zu ILIAS - dem Open Source LMS

Bericht aus dem Technical Board (Teil 2) - Die Umstellung auf PHP 8

Kruse, Fabian [Fabian], Kunkel, Matthias [mkunkel] - 12. May 2021, 11:55

Dies ist die Fortsetzung unseres Gesprächs mit Richard Klees, Sprecher des Technical Boards im ILIAS-Verein.

Eine wichtige Aufgabe für das Technical Board ist es aktuell, ILIAS auf PHP 8 lauffähig zu machen. Im Jahr 2016 war die Umstellung auf PHP 7 ebenfalls ein großes Thema und eine gemeinsame Kraftanstregung der ganzen Community. Auf welchem Stand ist der Quellcode heute im Vergleich zu damals?

Insgesamt betrachtet sind wir noch nicht da, wo wir hinwollen. Aber wir stehen sicherlich besser da als vor der Umstellung auf PHP 7. Damals ging es vor allem darum, dass der Code irgendwie laufen musste. Dieses Mal haben wir ein größeres Ziel: Der Code soll immer auch strukturelle Verbesserungen erhalten, die uns dann in der weiteren Entwicklung und bei der Umstellung auf PHP 9 weiterhelfen.

Ein Beispiel hierfür sind Smoke Tests. Diese testen keine Eigenschaften der Software, sondern überprüfen nur, dass jeder Pfad eines Programms einmal aufgerufen wird, um zu sehen, ob PHP diesen überhaupt interpretieren kann. Sowas könnte man für jede Komponente bauen.

Bereits heute ist unsere Testabdeckung deutlich besser als noch vor wenigen Jahren. Aber auch weitere automatisierte Unit Tests können vielerorts nützlich sein – und bei der Durchsicht ergänzt werden. So machen wir den Code einerseits fit für PHP 8, erleichtern aber auch eine frühe Prüfung, was die Kompatibilität mit PHP 9 angeht. Und solche Tests haben aus unserer Sicht noch weitere Vorteile. Denn sie erlauben uns, Entwicklerressourcen künftig für wichtigere Themen bereitzustellen als für die Durchsicht von Code.

Darüber hinaus überlegen wir aktuell, wie wir Code Reviews im Rahmen der Umstellung auf PHP 8 durchführen können – also systematische Untersuchungen von Quellcode durch andere Entwicklerinnen. Diese haben das Ziel, Fehler und Mängel im Code zu finden und die Qualität des Codes zu verbessern. Sie können auch gut von Dritten gemacht werden, die sonst nicht in der ILIAS-Entwicklung aktiv sind.

Ist es realistisch, den gesamten Code ordentlich durchzuarbeiten und mit Tests abzudecken?

Meine Vermutung: Wir werden feststellen, dass unser Code-Bestand so groß ist, dass wir ihn nicht komplett auf einem hohen Niveau pflegen können. Das könnte auch bedeuten, dass hier und da etwas abgeschafft werden muss.

Im Laufe der nächsten sechs Monate gewinnen wir hier sicher Klarheit. Kürzlich haben wir das Kick-Off-Meeting zu PHP 8 gehabt. Als erstes erstellen wir nun eine Prioritätenliste. Dinge wie die Benutzerverwaltung, der Login und ähnliches wird sicher ganz oben auf der Liste stehen. Andere Teile hingegen weiter hinten. Es würde mich sehr freuen, wenn wir alles schaffen könnten – aber das wäre schon ein kleines Wunder.

Erwartet uns so ein Kraftakt jetzt alle fünf Jahre, wenn PHP so schnell weiterentwickelt wird?

Der Fahrplan von PHP ist glücklicherweise transparent. Wir haben mit ILIAS das Problem, dass wir momentan nicht auf die Schnelle überprüfen können, welche Teile des Systems mit PHP 8 funktionieren und welche nicht. So wissen wir auch nicht sicher, wo Fehler auftauchen und welche Ressourcen wir benötigen. Hierfür werden automatisierte Tests eine große Hilfe sein.

Wer koordiniert die Umstellung?

Oliver Samoila von Databay macht dies im Auftrag des Technical Boards.

Und die eigentlichen Änderungen am Code übernehmen wieder die Maintainer für "ihren" Code?

Ja. Hinzu kommen allerdings einige unmaintainte Komponenten. Ärgerlicherweise sind diese Komponenten zum Teil sehr bedeutsam für ILIAS. Als Beispiel sei Services/Utilities genannt, eine Sammlung verschiedener Werkzeuge. Oder auch UI Core, ein zentraler Mechanismus für die Kontrollstruktur in ILIAS. In solchen Bereichen wird die Umstellung vermutlich am schwierigsten. Gleichzeitig kann sie aber auch eine Chance sein, diese Komponenten so weit aufzuräumen, dass sie wieder jemand übernehmen will.

Welche Vorteile wird PHP 8 für mich als Anwender bringen?

PHP ist ja eine serverseitig interpretierte Sprache. Das heißt, dass der Code bei jeder Ausführung vom Server in Maschinensprache übersetzt wird. PHP 8 bringt nun einen Just-In-Time-Compiler mit. Damit wird PHP erweitert und erkennt, welche Pfade im Programm häufig ausgeführt werden. Diese werden dann im Vorfeld in Maschinensprache übersetzt. Gerade längere Vorgänge – wie zum Beispiel Cronjobs oder Importe – dürften dadurch deutlich schneller werden.

Darüber hinaus zieht PHP mit den neuen Features an vielen Stellen mit anderen Programmiersprachen gleich. Dies sorgt für mehr Freude am Entwickeln. Ich persönlich bin absolut begeistert von den neuen Möglichkeiten, die PHP 8 bietet. Davon werden auch die Anwenderinnen profitieren, da wir dann leichter neue Features entwickeln können.

Ab wann wird PHP8 unterstützt – und wann wird es Voraussetzung für die Verwendung von ILIAS?

PHP 8 wird ab ILIAS 8 unterstützt. Und ich gehe davon aus, dass es ab ILIAS 9 Voraussetzung sein wird. Wir richten uns ja hier nach den Entwicklungszyklen von PHP und unterstützen immer die aktuellsten beiden Versionen. Die aktive Maintenance für PHP 7.4 läuft bereits Ende November aus. Es wird aber noch ein weiteres Jahr Sicherheitsupdates geben.

Was benötigt Ihr von der Community, um die Umstellung auf PHP 8 zu bewältigen?

Es wird auf jeden Fall wieder ein Crowdfunding geben, das Oliver gerade vorbereitet. Darüber hinaus wird sicherlich auch wieder eine intensive Testphase auf uns zukommen. Es muss dann genau geschaut werden, ob vorhandene Features auch auf PHP 8 noch laufen. Wir gehen davon aus, dass wir nicht alle Probleme während der Entwicklung finden werden, so dass wir unbedingt ein starkes Test-Team benötigen.

Außerdem haben wir mit dem PHP 8-Projekt die Chance, Leute zu beteiligen, die kein Interesse daran haben, Maintainer zu werden – aber trotzdem mit anpacken möchten. Sie können selber Code fit machen oder Reviews durchführen. Auch solche Beteiligungen erhoffen wir uns aus der Community. Wer Interesse daran hat, kann sich gerne bei uns melden: tb@lists.ilias.de

Richard, vielen Dank für das Gespräch!

Danke für das Interview und Aufschreiben!


No comment has been posted yet.