www.wikidata.de-de.nina.az
Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Smarty ist eine freie unter der LGPL veroffentlichte Template Engine die als PHP Bibliothek vorliegt Sie wurde mit dem Ziel entworfen bei der Entwicklung von Webapplikationen die Trennung von Code und Ausgabe zu ermoglichen Die Ausgabe erfolgt meist in HTML moglich ist aber jedes textbasierte Dateiformat zum Beispiel auch XML SmartyBasisdatenEntwickler Monte Ohrt Messju MohrErscheinungsjahr 2001 1 Aktuelle Version 4 3 4 2 1 Oktober 2023 Betriebssystem plattformunabhangigProgrammiersprache PHPLizenz LGPL Freie Software deutschsprachig jawww smarty net Inhaltsverzeichnis 1 Konzept 2 Syntax 3 Geschichte 4 Literatur 5 Weblinks 6 EinzelnachweiseKonzept BearbeitenDer Hersteller bezeichnet Smarty als Template Presentation Framework Es soll umfangreiche Hilfsmittel zum Losen vieler Probleme im Umfeld der Prasentationsschicht XHTML Ausgabe von Web Applikationen zur Verfugung stellen Mit diesem Konzept erweiterte Smarty wie viele andere Hersteller auch die Funktionen eines regularen Template Engine Systems Die Entwickler von Smarty gehen im Grundsatz davon aus dass das reine Layout einer Webapplikation von einem Template Designer entworfen und in HTML als Template umgesetzt wird wahrend die eigentlichen Prozesse und Datenverarbeitungsroutinen von einem Programmierer in PHP entwickelt werden Es erscheint deshalb sinnvoll diese beiden Komponenten bereits im Entwicklungsprozess zu trennen Zu diesem Zweck wird die Entwicklung aufgeteilt in Anwendungslogik verarbeitende PHP Dateien sowie in Templates die das Grundgerust der Ausgabe beinhalten und in einem eigenen Format vorliegen Bei diesen Template Dateien handelt es sich im Wesentlichen um HTML Dateien mit mehr oder weniger komplexen Platzhaltern die spater durch dynamische Inhalte ersetzt werden Um in den Templates eine gewisse Steuerbarkeit zu ermoglichen erkennt Smarty neben den Templatevariablen einige einfache Steuerbefehle die an die PHP Syntax angelehnt wurden und die Formulierung von Bedingungen if oder Schleifen foreach erlauben Smarty wurde fur den professionellen Einsatz optimiert und enthalt eine Art Compiler der die Ausgabe der Smarty Templates vorbereitet und in einem Cache speichert Dadurch wird die Ausgabe beschleunigt Als quelloffene Programmbibliothek kann Smarty beliebig erweitert und angepasst werden Syntax BearbeitenSmarty lasst sich in PHP folgendermassen einbinden lt php require once smarty libs Smarty class php my smarty new Smarty my smarty gt security true my smarty gt secure dir templates my smarty gt compile dir smarty cache my smarty gt left delimiter my smarty gt right delimiter my smarty gt debugging false gt Nachdem ein Objekt angelegt wurde mussen die Verzeichnisse fur die Templates und den Cache angegeben werden Der Code der an die Templates ubergeben werden soll muss zuvor registriert werden lt php my smarty gt assign name name my smarty gt assign first name first name gt Die Smarty Templates selbst sind einfache XHTML Dateien die an den gewunschten Stellen die Smarty Variablen und ggfs Smarty Steuerungscode insbesondere Schleifenlogik enthalten konnen Das folgende Beispiel demonstriert ein Smarty Template ohne Steuerungslogik Die Standardbegrenzer fur Smarty sind und Es hatte sich zunachst in der Praxis als empfehlenswert herausgestellt andere Begrenzer zu verwenden siehe erstes PHP Beispiel da die geschweiften Klammern mit evtl eingebettetem JavaScript kollidieren konnten Name name Vorname first name Dieses Problem lasst sich jedoch umgehen indem das JavaScript mit literal Tags maskiert wird oder Schweifklammern im JavaScript mit Leerzeichen umgeben werden 3 Geschichte BearbeitenMit der Intention eine vereinfachte Form von PHP fur Designer zu erschaffen erstellten die Entwickler Monte Orth und Andrei Zmievski 1999 die Spezifikation fur eine Template Engine welche anschliessend in der Hoffnung dass sie Eingang in PHP finden wurde in C programmiert wurde Das Projekt wurde jedoch nicht in den PHP Kern integriert Grund dafur waren technische Schwierigkeiten eine unklare Spezifikation uber den Leistungsumfang sowie die Tatsache dass im PHP Kern selbst eine alternative Syntax fur Templates integriert wurde Durch die Ablehnung des Projekts entstand die Klasse SmartTemplate bei der zum Parsen regulare Ausdrucke verwendet wurden Diese wurde jedoch nie veroffentlicht Da der Inhalt einer Seite bei jedem Aufruf geparst werden musste entstand ein grosser Overhead Um diesen Effekt zu vermindern wurde Smarty mit der Erstveroffentlichung am 18 Januar 2001 um eine Vorkompilierung der Dateien Caching erganzt Viele bekannte Produkte setzen auf Smarty etwa das Weblog Serendipity 4 oder die Shopsysteme Shopware 5 und JTL 6 Andere Projekte haben Smarty mittlerweile durch anderweitige Template Engines ersetzt beispielsweise migrierte das Framework Zikula auf Twig 7 Wieder andere Projekte entwarfen eigene von Smarty inspirierte Templatesprachen wie die ehemals im Web sehr weit verbreitete Forensoftware WoltLab Burning Board 8 Literatur BearbeitenJoao Prado Maia Hasin Hayder Lucian Gheorghe Smarty PHP Template Programming and Applications Packt 2006 ISBN 1 904811 40 X englisch George Schlossnagle Smarty In Professionelle PHP 5 Programmierung Addison Wesley Munchen 2006 ISBN 978 3 8273 2381 1 S 136 149 Florence Maurice Template Engines am Beispiel von Smarty In PHP 5 3 MySQL 5 1 Der Einstieg in die Programmierung dynamischer Websites Addison Wesley Munchen 2009 ISBN 978 3 8273 2723 9 S 415 428 Weblinks BearbeitenOffizielle WebsiteEinzelnachweise Bearbeiten web archive org Release 4 3 4 1 Oktober 2023 abgerufen am 20 Oktober 2023 https www smarty net docs en language escaping tpl https docs s9y org docs developers themes html https developers shopware com designers guide smarty https jtl devguide readthedocs io projects jtl shop de latest shop templates tipps tricks html javascript in templatedateien https zikula readthedocs io en stable CHANGELOG 1 4 https docs woltlab com view templates html Abgerufen von https de wikipedia org w index php title Smarty amp oldid 234749910