www.wikidata.de-de.nina.az
Eine Template Engine von englisch fur Vorlage bzw Schablone und Maschine ist eine Software die eine Vorlagen Datei engl Template verarbeitet und bestimmte Platzhalter darin ahnlich wie bei einem Formular durch jeweils aktuelle Inhalte ersetzt Die Bezeichnungen Template Klasse dt ugs Vorlagenklasse aber sachlich korrekt Klassenvorlage und Template System werden oft als Synonym fur eine Template Engine verwendet Beteilige dich an der Diskussion Dieser Artikel wurde wegen inhaltlicher Mangel auf der Qualitatssicherungsseite der Redaktion Informatik eingetragen Dies geschieht um die Qualitat der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen Hilf mit die inhaltlichen Mangel dieses Artikels zu beseitigen und beteilige dich an der Diskussion Klassen Templates in der C Programmierung sind dagegen nicht mit Template Engines vergleichbar weil sie eine vom Datentyp unabhangige Programmierung ermoglichen und ganze Klassen generieren konnen In den Templates einer Template Engine sollte kein Programm Code enthalten sein Kontrollstrukturen wie IF sind allerdings oft in Templates moglich und verbreitet Typische Dateitypen die verarbeitet werden sind HTML Text ASCII oder Unicode XML oder TeX Inhaltsverzeichnis 1 Konzept 1 1 Abgrenzung 1 2 Vorteile 1 3 Nachteile 2 Sprachabhangige Template Engines 2 1 Template Engines fur PHP 2 1 1 Beispiel 2 2 Template Engines fur Perl 2 3 Template Engines fur Python 2 3 1 Anwendungsbeispiel 2 4 Template Engines fur C und C 2 5 Template Engines fur Java 2 6 Template Engines fur JavaScript 2 7 Weitere Informationen zu Template Engines 3 Literatur 4 EinzelnachweiseKonzept BearbeitenDas Konzept ahnelt den Seriendruckfeldern bei einer Textverarbeitung In einem Dokument werden Seriendruckfelder Platzhalter eingefugt etwa Name Strasse Ort Bei Template Engines werden diese Seriendruckfelder Template Variablen genannt Wenn aus dem Dokument dann mehrere Serienbriefe erzeugt werden steht anstatt der Template Variablen name ein realer Name wie Erika Mustermann im fertigen Serienbrief Das Dokument braucht nur einmal geschrieben und formatiert zu werden Alle Anderungen wirken sich automatisch auf zukunftig erstellte Serienbriefe aus Das ist bei Template Engines genauso weitere Parallelen zu Serienbrief Vorlagen sind Die Daten kommen aus einer externen Quelle Datenbank Tabellenkalkulation etc Um die Daten zu andern braucht das Template nicht verandert zu werden und umgekehrt Das Template kann wiederverwendet werden Abgrenzung Bearbeiten Template Engines werden haufig von Programmierern eingesetzt um im Kontext von Webanwendungen Programm Code einer Programmiersprache vom Design zu trennen Genauso wird von den Herstellern mancher Template Engines angefuhrt Templates und Engines sollen durch die Trennung der Programmierlogik vom Design das Skript von HTML Code befreien und damit ubersichtlicher machen Demgegenuber steht der ursprungliche Gedanke der Template Engines Sie sollen statischen Text und dynamische Inhalte moglichst effizient miteinander verknupfen Oft sind Template Engines deshalb gerade in Programmiersprachen anzutreffen deren Syntax eine solche Mischung nicht direkt unterstutzt z B Java JSP VBScript u a ASP Fur eine echte Trennung der Darstellung von den Datenmodellen und den Logikkomponenten sind Template Engines dagegen ungeeignet und es sind zusatzliche Konzepte wie Model View Controller notwendig Vorteile Bearbeiten Programm Code PHP Python Ruby Perl JavaScript wird vom Markup HTML getrennt Designer und Programmierer konnen gleichzeitig an einem Projekt arbeiten WYSIWYG Editoren konnen verwendet werden Nachteile Bearbeiten Template Engines erzeugen zur Laufzeit Zusatzaufwand engl overhead Template Engines mussen im Gebrauch erlernt werden Neben der neuen Syntax sind auch oft grundlegende Kenntnisse der objektorientierten Programmierung Voraussetzung Template Engines sind auf eine textuelle Ausgabe beschrankt Sprachabhangige Template Engines BearbeitenTemplate Engines sind sehr verbreitet XSLT ist fur alle Template Engines eine Konkurrenz Bei PHP ist Smarty weit verbreitet hat aber die Eigenentwicklungen und andere Template Engines nicht vom Markt verdrangt Template Engines fur PHP Bearbeiten PHP selbst ist bereits so entworfen dass man programmiersprachliche Konstrukte mit der textuellen Ausgabe uber Platzhalter bzw gekennzeichnete Bereiche mischen kann lt h1 gt lt php echo body text gt lt h1 gt lt php foreach test array as key gt value gt lt p gt Schlussel lt php echo key gt Wert lt php echo value gt lt p gt lt php endforeach gt Der Vorteil liegt in der einfachen Verwendung Es braucht keine zusatzliche Bibliothek installiert zu werden auch ist diese Vorgehensweise fur PHP erfahrene Entwickler am leichtesten zu verstehen und folgt dem Prinzip der geringsten Uberraschung Die Verwendung einer gesonderten Template Engine fur PHP ist daher nicht erforderlich Dennoch bietet die Verwendung einer Template Engine fur PHP neben der besseren Ubersicht einige Vorzuge beispielsweise konnen einfache anpassbare Templates fur Fehlermeldungen und ahnliche wiederkehrende Strukturen erstellt werden Einige populare Template Engines sind Smarty 1 Twig 2 Fluid als Teil von TYPO3 Flow 3 vlibTemplate 4 TinyButStrong 5 Contemplate 6 ETS Easy Template System 7 t24 PHP template parser 8 HTML Template IT HTML Integrated Templates PEAR PackageuBook Template 9 uBook Template 10 KTemplate 11 Hyperkit PHP XML Template Engine 12 Beilpuz 13 Separate 14 Blade als Teil von Laravel 15 Beispiel Bearbeiten Um eine Template Engine zu verwenden benotigt man die Template Datei in der die auszugebenden Daten enthalten sind sowie das Script welches das Template ladt und die Platzhalter mit Werten fullt Das Template konnte so aussehen lt body gt lt p gt Hallo name lt p gt lt body gt Und so konnte eine Wertzuweisung vom Script aus aussehen template gt assign name Erika Mustermann Das Ergebnis lt body gt lt p gt Hallo Erika Mustermann lt p gt lt body gt Template Engines fur Perl Bearbeiten Template Toolkit 16 Contemplate 17 auch ASP Embperl 18 Mason 19 HTML Template 20 Text Template 21 HTML CTPP2 22 Template Engines fur Python Bearbeiten Es gibt viele Template Engines unter Python Beispiele sind Django oder TurboGears Eine gute Ubersicht mit URI und Code Beispielen findet man im deutschen PythonWiki 23 Eine umfangreichere Liste dafur weniger erklart findet man im englischen Wiki zu Python 24 Weitere sind Cheetah SimpleTAL pyTemple pyratemp 25 und einige Python Template Engines 26 Spytee Nevow Kid Genshi Jinja und HTMLTemplate Anwendungsbeispiel Bearbeiten coding utf 8 Modul Template muss importiert werden from string import Template Vorlage zum Lesen offnen Inhalt ubergeben und Datei schliessen vorlage open vorlage txt r vorl inhalt vorlage read vorlage close Den Inhalt als Template behandeln template Template vorl inhalt Ersetzungen nach folgendem Schema festlegen ersetzungen Name Hans Meier Strasse Bahnhofstrasse 69 Ort 12345 Foobarhausen Ersetzungen vornehmen ersetzen template substitute ersetzungen Vorgang in Datei schreiben outfile open ausgabe txt w outfile write ersetzen outfile close vorlage txt Name Name Strasse Strasse Ort Ort ausgabe txt Name Hans Meier Strasse Bahnhofstr 69 Ort 12345 Foobarhausen Template Engines fur C und C Bearbeiten Fur C und C gibt es verschiedene Template Engines wie ClearSilver 27 Die Template Engine von Orkut und Yahoo Groups setzen einen eigenen Branch ein Grantlee Template System 28 Google CTemplate 29 Template Engines fur Java Bearbeiten Einige Template Engines fur Java 30 sind java basierte quelloffene Template Engines StringTemplate Template Engine von Terence Parr Basis fur sein ANTLR portiert auf C Objective C und JavaScript FreeMarker Java basierte Template Engine 31 Apache Velocity Java basierte Template Engine Thymeleaf Java basierte Template Engine 32 Template Engines fur JavaScript Bearbeiten Im Gegensatz zu den vorherigen Losungen konnen Templates vom Web Browser verarbeitet werden Der Server liefert nur die Daten z B als JSON oder XML String Der Rest ubernimmt JavaScript im Browser AngularJS Clientseitiges JavaScript Webframework von GoogleWeitere Informationen zu Template Engines Bearbeiten Einige weitere Template Engines sind Java basiert Hamlets Java basierte Template Engine action4JAVA 33 Java basiertes Framework mit Template Kern jade4j Java basierte freie Implementierung der Jade Template Engine 34 Xpand Java basierte Template Engine fur die Codegenerierung 35 ASP 36 CTPP Cross platform Template Engine fur C C PERL und PHP 37 GvTags Template Engine fur Groovy 38 jQote2 jQuery JavaScript Templating Engine 39 FilesFromCSV NET basiert erzeugt pro CSV Datensatz ein Dokument 40 Handlebars JavaScript basierte semantische Template Engine 41 wird u a in Ghost verwendet AWS Templates Parser Ada basierte Template Engine 42 Literatur BearbeitenKarsten Wendland Der Template Zyklus Web Templates im Spannungsfeld von schopferischem Gestalten und einschrankender Zumutung Aachen 2006 ISBN 3 8322 5285 1 Einzelnachweise Bearbeiten Smarty extern Twig Memento des Originals vom 9 Juli 2017 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot twig sensiolabs org extern Memento des Originals vom 31 Januar 2009 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot forge typo3 org vLIB Memento des Originals vom 21 Januar 2005 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot vlib clausvb de vlibTemplate Memento des Originals vom 19 Juni 2006 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot vlib clausvb de vlibDate Memento des Originals vom 17 Juli 2006 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot vlib clausvb de und vlibMimeMail Memento des Originals vom 17 Juli 2006 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot vlib clausvb de englisch Memento des Originals vom 21 Januar 2005 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot vlib clausvb de deutsch TinyButStrong Contemplate Memento des Originals vom 22 November 2005 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www typea net ETS Easy Template System t24 PHP template parser HTML Template IT HTML Integrated Templates PEAR Package uBook Template KTemplate Memento des Originals vom 14 Mai 2008 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot kuerbis org Hyperkit PHP XML Template Engine Memento des Originals vom 24 Januar 2012 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www hyperkit software com Beilpuz Separate Blade Templates Laravel The PHP Framework For Web Artisans Abgerufen am 1 Juni 2019 Template Toolkit Contemplate Memento des Originals vom 22 November 2005 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www typea net Embperl Mason HTML Template Text Template HTML CTPP2 deutschen PythonWiki 1 2 Vorlage Toter Link pythonwiki pocoo org Seite nicht mehr abrufbar festgestellt im Mai 2019 Suche in Webarchiven Info Der Link wurde automatisch als defekt markiert Bitte prufe den Link gemass Anleitung und entferne dann diesen Hinweis englischen Wiki zu Python pyratemp Vergleich und Benchmarks Python Template Engines ClearSilver Grantlee Template System Projektubersicht zu Google CTemplate bei Google Code Java Source net Open Source Template Engines in Java Freemarker website Thymeleaf action4JAVA Memento des Originals vom 28 Februar 2013 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www action4java org jade4j Bezugsquelle oAW website Contemplate englisch Memento des Originals vom 22 November 2005 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot www typea net CTPP GvTags Template Engine fur Groovy jQote2 Memento des Originals vom 9 April 2010 im Internet Archive Info Der Archivlink wurde automatisch eingesetzt und noch nicht gepruft Bitte prufe Original und Archivlink gemass Anleitung und entferne dann diesen Hinweis 1 2 Vorlage Webachiv IABot aefxx com FilesFromCSV Handlebars js Minimal Templating on Steroids AWS Templates Parser A template engine Abgerufen von https de wikipedia org w index php title Template Engine amp oldid 234749938