Vorlagenprozessor

A Vorlagenprozessor (auch bekannt als a Template Engine oder Vorlage Parser) ist Software Entwickelt, um Vorlagen mit einem zu kombinieren Datenmodell Ergebnisdokumente.[1][2][3] Die Sprache, in der die Vorlagen geschrieben sind Vorlagesprache oder Vorlagensprache. Für die Zwecke dieses Artikels ist ein Ergebnisdokument jede Art von formatierter Ausgabe, einschließlich Unterlagen, Webseiten, oder Quellcode (in Quellcodegenerierung), entweder ganz oder in Fragmenten. Eine Vorlagenmotor ist normalerweise als Teil von a enthalten Webvorlagensystem oder Anwendungsrahmenund kann auch als als verwendet werden Präprozessor oder Filter.
Typische Funktionen
Template-Motoren enthalten in der Regel Merkmale Programmiersprachenmit Schwerpunkt auf Funktionen für die Verarbeitung einfacher Text.
Solche Funktionen umfassen:
- Variablen und Funktionen
- Textersatz
- Dateieinschluss (oder Transclusion)
- bedingte Bewertung und Schleifen
Eingebettete Vorlagenmotoren
Während Vorlagenprozessoren in der Regel eine separate Software sind, die als Teil eines Systems oder eines Rahmens verwendet wird, sind einfache Vorlagensprachen üblich allgemeine Programmiersprachenund in Textverarbeitungsprogrammen, insbesondere in Textredakteure oder Textverarbeitungen. Die Vorlagensprachen sind im Allgemeinen einfache Sprachen nur für Substitution, im Gegensatz zu den ausgefeilteren Einrichtungen in vollwachsenen Vorlagenprozessoren, können jedoch eine gewisse Logik enthalten.
Einfache Beispiele sind "Printf" -Druckformat -Zeichenfolgen, in vielen Programmiersprachen gefunden, und Schnipsel, gefunden in einer Reihe von Textredakteuren und Quellcode -Redakteure. In Textverarbeitern, Vorlagen sind ein häufiges Merkmal, während die automatische Füllung der Vorlagen häufig als als bezeichnet wird Post verschmelzen.
Ein illustratives Beispiel für die komplementäre Natur von Parsing und Vorlagen ist das s
(Ersatz) Befehl in der sed Textverarbeitungsprozessor, der aus Such- und Replace in der ist ed Texteditor. Substitutionsbefehle sind aus der Form s/regexp/Ersatz/
, wo Regexp
ist ein regulären Ausdruckzum Analysieren der Eingaben und Ersatz
ist eine einfache Vorlage für die Ausgabe, entweder wörtlicher Text oder eine Formatzeichenfolge, die die Zeichen enthält &
Für "gesamte Match" oder das Special Fluchtsequenzen \1
durch \9
für die nTH Subexpression. Zum Beispiel, S/(Katzen | Hund) s?/\ 1s/g
Ersetzt alle Vorkommen von "Katze" oder "Hund" durch "Katzen" oder "Hunde", ohne ein bestehendes "S" zu duplizieren: (Katze | Hund)
ist die 1. (und einzige) Unterexpression in der Regexp, und \1
In der Format -Zeichenfolge ertönt dies in die Ausgabe.
Systemelemente
Alle Vorlagenverarbeitungssysteme bestehen aus mindestens diesen primären Elementen:
- ein assoziiertes Datenmodell;
- ein oder mehr Quellvorlagen;
- ein Prozessor oder Template Engine;
- erzeugte Ausgabe in Form von Ergebnisdokumente.
Datenmodell
Dies kann eine relationale Datenbank sein, eine Quelldatei wie z. B. Xmlein alternatives Format von Flat -Datei -Datenbank, a Kalkulationstabelle oder eine andere verschiedene Quellen vorformatierter Daten. Einige Vorlagenverarbeitungssysteme sind in den verwendeten Datentypen begrenzt. Andere sind für maximale Flexibilität ausgelegt und ermöglichen viele verschiedene Arten von Daten.
Quellvorlage
Quellvorlagen werden traditionell angegeben:
- nach einer bereits bestehenden Programmiersprache;
- nach einer speziell definierten Vorlagensprache;
- gemäß den Funktionen einer Hosting -Softwareanwendung; oder
- Nach einer hybriden Kombination einiger oder aller oben genannten.
Template Engine
Die Template Engine ist verantwortlich für:
- Verbindung mit dem Datenmodell;
- Verarbeitung des in den Quellvorlagen angegebenen Code; und
- Regie die Ausgabe auf eine bestimmte Pipeline, Textdatei, oder Strom.
Zusätzlich ermöglichen einige Vorlagenmotoren zusätzliche Konfigurationsoptionen.
Ergebnisdokumente
Diese können aus einem gesamten Dokument oder einem Dokumentfragment bestehen.
Verwendet
Die Vorlagenverarbeitung wird in verschiedenen Kontexten für verschiedene Zwecke verwendet. Der spezifische Zweck hängt normalerweise von der ab Computerprogramm oder Template Engine in Gebrauch. Die Flexibilität von Vorlagenverarbeitungssystemen ermöglicht jedoch häufig unkonventionelle Verwendungen für Zwecke, die ursprünglich von den ursprünglichen Designern nicht beabsichtigt sind.
Template Engine
Eine Template -Engine ist eine bestimmte Art von Vorlagenverarbeitungsmodul, das alle Hauptmerkmale eines modernen Merkmals aufweist Programmiersprache. Der Begriff Template Engine entwickelt sich als generalisierte Beschreibung von Programmiersprachen, deren primärer oder ausschließlicher Zweck darin bestand, Vorlagen und Daten zum Ausgabe von Text zu verarbeiten. Die Verwendung dieses Begriffs wird vor allem auf angewendet Web Entwicklung Verwendung einer Webvorlagensystemund es wird auch auf andere Kontexte angewendet.[4]
Dokumentgenerierung
Dokumentgenerierungsframeworks verwenden die Vorlagenverarbeitung in der Regel als zentrales Modell zum Generieren von Dokumenten.
Quellcodegenerierung
Tools für Quellcodegenerierung unterstützen die Erzeugung von Quellcode (als Ergebnis dokumentiert) aus abstrakten Datenmodellen (z. B. UML, relationale Daten, domänenspezifische Unternehmensdatenspeicher) für bestimmte Anwendungsdomänen, bestimmte Organisationen oder bei der Vereinfachung des Produktionsprozesses für Computerprogrammierer.
Softwarefunktionalität
A Netz Template Engine verarbeitet Webvorlagen und Quelldaten (normalerweise aus a relationale Datenbank) Um einen oder mehrere Ausgangsausgang zu erzeugen Webseiten oder Seitenfragmente. Es ist normalerweise als Teil von a enthalten Webvorlagensystem oder Anwendungsrahmen. Derzeit wird die Vorlagenverarbeitungssoftware am häufigsten im Kontext der Entwicklung für die verwendet Netz.
Vergleich
Xslt ist ein Vorlagenverarbeitungsmodell, das von entworfen wurde von W3c. Es wurde hauptsächlich für Transformationen auf Xml Daten (in Webdokumente oder eine andere Ausgabe).
Programmiersprachen wie zum Beispiel Perl, Python, Php, Rubin, C#, Java, und gehen Unterstützen Sie die Vorlagenverarbeitung entweder nativ oder über Add-On-Bibliotheken und Module. Javaserverseiten,[5] Aktive Server-Seiten,[6] Genshi (für Python) und Ehr sind Beispiele für Vorlagenmotoren, die speziell für die Entwicklung von Webanwendungen entwickelt wurden.
Darüber hinaus wird die Vorlagenverarbeitung manchmal als Unterfunktion von Softwarepaketen wie enthalten Textredakteure, Ides und Relationale Datenbankverwaltungssysteme.
Vorteile der Verwendung von Vorlagenmotoren
- Ermutigt die Organisation des Quellcode in operativ distinente Ebenen (siehe z. B.,,, MVC)
- Verbessert die Produktivität, indem die unnötige Reproduktion von Aufwand verringert wird
- Verbessert die Teamarbeit, indem die Arbeitsteilung auf der Grundlage von Fähigkeiten (z. B. künstlerisch vs. technisch) ermöglicht wird.
Siehe auch
- Dokumentautomatisierung
- Dokumentmodellierung
- Domänenspezifische Programmiersprache
- Glossar of Operating Systems Begriffe § Vorlagen
- Internationalisierung und Lokalisierung
- Layout -Motoren
- Makro (Informatik)
- Vorlagen
- Vorlagensysteme
- Webvorlagensystem
Verweise
- ^ Niemeyer, Patrick (2002). Java lernen. Sebastopol: O'Reilly. ISBN 0-596-00285-8.
- ^ Manolescu, Dragos (2006). Mustersprachen des Programmdesigns 5.Lesen: Addison-Wesley Professional. ISBN 0-321-32194-4.
- ^ Fowler, Martin (2003). Muster der Enterprise -Anwendungsarchitektur. Boston: Addison-Wesley. ISBN 0-321-12742-0.
- ^ (Siehe z. B. Geschwindigkeit, Templatetoolkit, Freemarker).
- ^ JavaServer Pages ist eine von Sun veröffentlichte Technologie zur Verwendung mit der Java -Programmiersprache. "JavaServer Pages -Technologie". 2006-10-10. Abgerufen 2006-10-10.
- ^ ASP 1.0 wurde ursprünglich zur Verwendung mit Microsoft VBScript und JScript veröffentlicht.Es war eine Erweiterung von Microsoft IIS.