Dwoo wird ja schon lange nicht mehr weiter entwickelt, das war bisher kein Problem, weil es ja alles konnte, was wir brauchten, und problemlos funktioniert hat. Mit PHP Version 8 kamen jetzt aber ein paar Probleme auf, die ich zwar weitestgehend gefixt habe, aber es bleiben ein paar Lücken. Anwender merken da erst mal nichts von, wir müssen aber natürlich an die Zukunft denken und uns daher jetzt mal von Dwoo trennen.
Für den Übergang schlage ich vor, ein neues Backend Theme zu erstellen, das ohne Dwoo auskommt. Ich verwende in meinen Modulen seit einiger Zeit gar keine Template Engine mehr, das mag eine mögliche Lösung sein. Ansonsten käme vielleicht Twig in Frage.
Ein Problem besteht darin, dass wir in der initialize.php eine $parser Variable belegen, die dann den Zugang zur Template Engine beinhaltet. In den Themes steht eigentlich auch schon drin, welche TE verwendet wird. Wir haben aber keine Trennung zwischen Front- und Backend. Daher wäre der nächste Vorschlag, dass wir die Variable $parser erst mal für das Frontend weiter benutzen und ich für das Backend eine Accessor-Funktion vorsehe. Zudem baue ich eine Template-Klasse analog DwooDriver.php für "Vanilla PHP", die dann die Funktionen wie get() und output() liefert und sich um die globalen Template-Variablen kümmert. Damit sollten die notwendigen Änderungen im Backend erst mal überschaubar bleiben.
Im Frontend gestaltet sich das etwas schwieriger, weil ja alle Templates z.B. {page_content} als Markup verwenden. Da ich aber vor Jahren schon mal eine eigene Template Engine gebaut habe, fällt mir vielleicht auch dazu noch etwas ein.
Das gilt auch für Module wie MultiColumn, die ja in der Regel auf Dwoo ausgelegt sind. Wir werden Dwoo auch erst mal weiter mitliefern, müssen dann aber sukzessive die Templates und Module umbauen. Da muss dann letztlich jeder für sich entscheiden, ob er auf eine neue TE wie Twig aufsetzen will, oder nur noch PHP benutzt.
Ablösung Dwoo Template Engine
Ablösung Dwoo Template Engine
My software never has bugs, it just develops random features.
If it’s not broken, keep fixing it until it is
If it’s not broken, keep fixing it until it is