Information
PHP als Template Engine
Bei grösser werdender Komplexität kommt sehr schnell der Wunsch eines jeden Entwicklers die Business Logik von der Darstellung trennen zu wollen.
Dies ist der Augenblick in dem Templates zum Einsatz kommen. Der grosse Nachteil bei Template Engines ist jedoch deren Performance.
Die erhaltenen Daten der Business Logik müssen zwischengespeichert und dann im Template wieder herausgelesen werden.
Dies kann beispielsweise dadurch erreicht werden, indem man in der Business Logik ein XML generiert und darin die erhaltenen Daten speichert.
Im Template wird dann das ganze XML nochmals durchgeparst, um die Daten heraus zu lesen und darzustellen.
Im Klartext heisst das, Zeitverlust auf beiden Seiten, beim Generieren des XML und wiederum beim Parsen des selben XML. Das kann umgangen werden.
Gonzales greift eine Idee von Brian Lozier auf, indem kein eigentlich neuer Mechanismus eingeführt wird, sondern die Möglichkeiten von PHP genutzt werden.
PHP besticht durch seine einfache Syntax und seinen mächtigen Funktionsumfang. PHP wurde speziell für den Einsatz im Web-Bereich konzipiert.
Warum also nicht dessen Vorteile direkt nutzen?
Gonzales ist eine kleine Klasse, der ein Template zugewiesen wird. In diesem Objekt können nun Daten direkt als PHP Variablen gespeichert werden.
Die Templates, ebenfalls PHP Files, können diese Variablen direkt nutzen und herausschreiben.
Damit wird der gleiche Effekte wie bei anderen Template Engines erzielt, ohne den Umweg über einen neuen Mechanismus gehen zu müssen.
Die aufwendige doppelt Interpretation von Code und Template fällt ganz einfach weg. Damit ist Gonzales so schnell wie PHP selbst!
Doch damit nicht genug. Dem Template Objekt können nicht nur Daten übergeben werden, sondern auch andere Template Objekte,
die wiederum ihre eigenen Daten enthalten. So können ganz einfach beliebig viele Templates in einander verschachtelt werden.
|
|