Moin,
Die Idee ist eigentlich so simpel, dass man sich fragen muss wieso es so lange gedauert hat bis sie jemandem eingefallen ist: HTML hat ja eine Baumstruktur, in string-basierten Templating-Engines findet sich das aber nirgendwo wieder.
Ach ne: HTML ist eine Sequenz, eine Solche wird immer sequentiell bearbeitet. Wahlfreien Zugriff jedoch gibt es nicht in Sequenzen sondern im Hauptspeicher und das gilt auch für Baumstrukturen die sich im RAM als abstrakte Datentypen wiederfinden.
Diese grundlegenden Zusammenhänge hat Niklaus Wirth bereits in dem 80ern ausformuliert und selbstverständlich gelten die auch heute noch. D.h., daß man z.B. aus einer in PHP vorliegenden Baumstruktur beliebige Sequenzen (Dateien) erzeugen kann, also auch solche wo man die Baumstruktur mit einem Editor gar nicht sieht obwohl sie aus der Datei mit demselben Algorithmus wiederhergestellt werden kann, also nach wie vor in der Datei vorhanden ist.
Deine Engine ist also nur ein Vermittler der mit einem speziellen Algorithmus zwischen einer Sequenz und einem abstrakten Datentype im Hauptspeicher vermittelt.
Das ermöglicht Features wie Syntax-Checks und automatischen Kontextwechsel, die mit string-basierten Engines nicht möglich sind
Oh doch. Wenn Du eine Sequenz im Hauptspeicher hast für den wahlfreien Zugriff also, kannste alles damit machen. Perls Template Toolkit kann auch Syntax für Platzhalter checken.
MfG