Eine XSLT Template Engine

In den letzten Tagen habe ich an verschiedenen Stellen im Netz immer wieder etwas über XSLT als echte Template Sprache und Alternative zu gängigen Template Engines wie z.B. Smarty gelesen. Template Systeme sind nützlich, um die Anwendungslogik von der Darstellungslogik zu trennen. Dabei bietet so ziemlich jedes System seine eigene Syntax und basiert widerum für sich selbst auf einer Programmiersprache. Wenn wir beim Beispiel Smarty bleiben möchten, so basiert Smarty z.B. auf PHP.

Bei XSLT handelt es sich um XSL Transformation. Eine Programmiersprache zur Transformation von XML Dokumenten basierend auf XSL (Extensible Stylesheet Language). Hört sich bis hierhin ziemlich wild an, ist es aber gar nicht. Praktisch hierbei ist einfach, dass XSLT universell ist. Bedeutet einfach, dass ich frei bestimmen kann, was am Ende der Transformation erscheinen soll. Ob ich nun ein XHTML Dokument oder ein DocBook haben möchte. Mit XSLT kann ich’s machen.
PHP5 bringt bereits seinen eigenen XSLT Processor mit sich. Dies bedeutet, dass ich komplette Dokumente bereits auf dem Server rendern kann. Wie in einem älteren Artikel ebenfalls beschrieben, ist es mit PHP5 und dem integrierten DomDocument Objekt ebenso einfach ein XML Dokument zu erstellen.

Das Webholics Blog hat ein sehr schönes Tutorial zu XSLT geschrieben, auf Basis dessen ich meine kleine XSLT Template Engine erstellt habe. Die Template Engine kann z.B. mit dynamischen Daten gefüttert werden, die vielleicht aus einer Datenbankabfrage oder einer Cache Resource stammen könnten. Es ist ebenfalls möglich direkt ein XML Dokument mit Daten anzugeben. Egal ob übergebenes Array oder XML Datei. Die Template Engine bereitet diese Daten auf und liefert auf Basis einer XSL Datei ein fertiges Template im XHTML Format.

Was kann meine Template Engine?

Diese frühe Version der XSLT Template Engine beinhaltet lediglich die nötigsten Funktionen. Das System basiert auf verschiedenen XSL Dateien, die in diesem Sinne als Templates angesehen werden können. Momentan liefert die Template Engine lediglich XHTML Ergebnisse. In der weiteren Entwicklung wird das Ergebnis aber frei definierbar und universell einsetzbar sein. Die XSLT Template Engine verarbeitet die übergebenen Daten im XML Format. Praktisch hierbei ist, dass ich diese Daten, die aus einer x-beliebigen Quelle stammen können, entweder per Array oder per statischer XML Datei übergeben kann. Ein online Beispiel findet ihr hier. In diesem Beispiel sind sowohl die Menüstruktur als auch die beiden Artikel auf der Startseite dynamisch über XSL Templates eingefügt worden.

Was ist geplant?

Hier hoffe ich natürlich auf Eure Mitarbeit. Viele Köpfe haben auch immer viele gute Ideen.

Ich habe schonmal eingeplant, das Ausgabeformat frei definieren zu können. Weiterhin muss das komplette System dynamischer werden. Weiteres wird die Zeit zeigen, da ich mich selbst noch mehr in das Thema einlesen werde.Ich bin natürlich für jegliche Art von Tipps und Tricks dankbar.

Download

XSLTemplateEngine

About Author: Marcel
Ich bin Senior PHP Developer bei MM Newmedia. Seit 2005 bin ich begeisterter Webentwickler und arbeite als Freelancer für namenhafte Firmen und entwickle jede Menge abgefahrenes Zeug und berichte darüber in meinem Blog.

6 thoughts on “Eine XSLT Template Engine

Kommentar verfassen