Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Seminar Internet-Technologie Thema: Smarty Templates Vortragender: Christian Voß Datum: 11.01.2008.

Ähnliche Präsentationen


Präsentation zum Thema: "Seminar Internet-Technologie Thema: Smarty Templates Vortragender: Christian Voß Datum: 11.01.2008."—  Präsentation transkript:

1 Seminar Internet-Technologie Thema: Smarty Templates Vortragender: Christian Voß Datum:

2 Inhalt Was ist Smarty Der Entwicklungsprozess Was Smarty bietet Smarty Projekte – Ein Beispiel Die Debugging Konsole Smarty in der Praxis Fazit Quellenangabe Der PHP Quelltext Konfigurationsdateien Die Template Dateien

3 Was ist Smarty ? Smarty ist eine Templatesystem welches Programmieren und Designer ermöglicht getrennt an einem Projekt zu Arbeiten. Smarty Design Datenbank Logik Klassischer AnsatzMit Smarty Designer Datenbank Prog. Logik Prog.

4 Der Entwicklungsprozess 1999 von Monte Orth und Andrei Zmievski erdacht Als PHP Bestandteilgedacht Ursprünglich in C entwickelt Erste PHP Version konnte nur reguläre Ausdrücke parsen Erstveröffentlichung , enthielt bereits Caching Version 2.0 erschien im März 2002 wichtigste Neuheit: Plug-ins Version 2.6 veröffentlich am Aktuelle Version stammt vom Dokumentation verfügbar in vielen Sprachen, seit Anfang März 2003 auch auf Deutsch

5 Was Smarty bietet Smarty Open Source Einfache Install- ation Sicher- heit Debugger Geschwin- digkeit Plug-insFilter Mehr- sprach- igkeit

6 Installation Aktuelle Version zu finden unter Systemvorrausetzungen: PHP >= Dateien entpacken, Pfade eintragen, fertig Was Smarty bietet (2) Sicherheit Designer können Logik/Datenbankcode nicht ändern Vielfältige Möglichkeiten Rechte zu beschränken Debugger Smarty besitzt eine eigene Debugging Konsole

7 Geschwindigkeit Templates werden compiliert Seiten können gecachet werden Unter bestimmten Vorrausetzungen, schneller als pures PHP Was Smarty bietet (3) Plug ins Für viele Probleme existieren bereits fertige Lösungen Plug-ins bestehen aus php Dateien Dynamisches Laden von Plug-ins Arbeitsaufwand stark gemindert, da Code wiederverwendet werden kann

8 Filter Pre Filter Post Filter Output Filter Vielfältige Möglichkeiten zur Optimierung Was Smarty bietet (4) Mehrsprachigkeit Templates können einfach für verschiedene Sprachen angepasst/erstellt werden Integration der PHP gettext Funktion

9 Des weiteren bietet Smarty für Designer viele aus anderen Sprachen bekannte Strukturen und Funktionen u.a.: Was Smarty bietet (5) Schleifen if, else, elseif Arrays Reguläre Ausdrücke Mathematische Funktionen Funktionen zur Vereinfachung von HTML Befehlen Modifikation von Variablen Integration von PHP, Javascript Für Programmierer gibt es einige zusätzliche Funktionen, welche Schwachstellen in PHP verbessern, der Großteil des Quelltextes ist jedoch weiterhin reines PHP.

10 Smarty Projekte - Ein Beispiel Erstellung folgender Webseite

11 Der Quelltext ist eine normale PHP Datei (hier ohne Logik, Datenbankzugriffe, etc) mit zusätzlichem Smartycode. index.php Smarty ist eine Klasse in PHP Es gibt diverse Einstellungen compile_check = true; $smarty->debugging = true; $smarty->assign("Namen", array("Christian Voß", "Michael Klenke", "Eric Sternberg")); assign (x,y) x = Variablen Name Y = Variablen Werte Smarty Projekte – Ein Beispiel Der PHP Quelltext

12 Es können alle bekannten PHP Datentypen zugewiesen werden, sowie ein und mehrdimensionale Arrays. $smarty->assign("Themen", array( "Christian Voß" =>array("smartylogo.jpg", "Smarty Templates"), "Michael Klenke" => array("javalogo.jpg", "Java Server-Pages(JSP)") "Eric Sternberg" => array("waplogo.jop", "WML (WAP)"))); $smarty->assign("datum", array(1000 => " ", 1001 => " ", 1002 => " ")); $smarty->assign("aktuelles_datum", 1000); $smarty->display('index.tpl'); ?> display(tlp) lädt das Template tlp Smarty Projekte – Ein Beispiel Der PHP Quelltext

13 Smarty Projekte – Ein Beispiel Konfigurationsdateien Smarty kennt so genante Konfigurationsdateien, in denen konstante Werte für ein Projekt gespeichert werden können. Konfigurationsdateien… …sind optional …können verschiedene Sektionen haben …müssen in ein Template geladen werden …besitzen zu Klassen äquivalente Geltungsbereiche (scopes) …werden in Templates mit {#name#} eingesetzt Für unser Beispiel verwenden wir folgende, sehr einfach gehaltene, Konfigurationsdatei: title = seminar internet-technologie seminar.conf

14 Smarty Projekte – Ein Beispiel Die Template Dateien Projekte können aus beliebig vielen Dateien bestehen, welche untereinander geladen werden können, vergleichbar mit require Befehl aus PHP, bzw. include aus C. Template Dateien bestehen aus normale HTML Code, welcher mit Smartybefehlen erweitert wird. In unserem Beispiel haben wir 3 Dateien. {config_load file=seminar.conf} {$apptitle} {#title#|capitalize} header.tlp {$varname} greift auf die Inhalte von Variablen zu

15 Die eigentliche Hauptdatei, welche von index.php geladen wurde. Smarty Projekte – Ein Beispiel Die Template Dateien index.tlp {include file="header.tpl" apptitle="Ein einfaches Smarty Beispiel"} {include file =name} lädt die mit Name angegebene Datei. Intern wird dabei der Quelltext der anderen Datei an die Stelle des includes kopiert. Es können beliebig viele Parameter der Form varname=text existieren, welche in der zu ladenden Datei die Variable varname mit dem Inhalt text erzeugen.

16 Smarty Projekte – Ein Beispiel Die Template Dateien For…each iteriert ein Array und bietet zusätzliche Informationen. {html_image file} ersetzt den HTML Befehl. {foreach item=name from=$Namen} {foreach item=info from=$Themen[$name] name="inner"} {if $smarty.foreach.inner.first} {html_image file=$info} {else} Thema: {$info} Gehalten von: {$name} {/if} {/foreach} {/foreach}

17 Smarty Projekte – Ein Beispiel Die Template Dateien html_options ist ein weiterer von vielen Befehlen die um- ständliche oder nicht vorhandene HTML Befehle ersetzen. Html_options erstellt dabei eine Combobox. Weitere sind unter anderem: mailto (erzeugt verschlüsselte Links) math (ermöglicht mathematische Berechnungen) popup (erzeugt ein Popup Fenster) Anderes Datum wählen: {html_options name=datum_auswahl options=$datum selected=$aktuelles_datum} {include file="footer.tpl"}

18 Nach dem kompilieren entsteht je nach Einstellung eine PHP oder HTML Datei, welche zwar geöffnet werden kann, allerdings schwer zu lesen ist, da keine Formatierungen existieren. Smarty Projekte – Ein Beispiel Die Template Dateien Im Footer wird schließlich noch das aktuelle Datum/Uhrzeit angezeigt. Dies geschieht mit Hilfe der Funktion now; mit date_format wird das Anzeigeformat bestimmt Seite wurde erstellt: {$smarty.now | date_format:"%d.%m.%Y %H:%M:%S"} footer.tlp

19 Die Debugging Konsole Werte und Datentypen aller Variablen werden hier angezeigt, sowie einige statistische Informationen

20 Smarty in der Praxis Auf der Herstellerseite findet sich eine Liste mit Referenzseiten die Smarty verwenden. Bekannte Seiten lassen sich jedoch nur vereinzelt finden, obwohl Smarty inzwischen fast 6 Jahre alt ist. Mögliche Gründe dafür könnten sein: Kein Bedarf an Template Systemen, oder bessere Alternativen Das MVC-Prinzip wird nicht vollständig umgesetzt Hohe Einarbeitungszeit, da sowohl Designer als auch Programmier eine zusätzliche Sprache lernen müssen Designer, die in der Lage sind die Smarty Logik zu verstehen, sollten ebenfalls in der Lage sein PHP direkt zu nutzen Smarty kann (vor allem bei falscher Anwendung) deutlich langsamer sein als pures PHP Mehraufwand bei der Projekterstellung Wenig Fachliteratur verfügbar

21 Fazit Smarty hat, wie so vieles, seine Vor- und Nachteile. Für bestimmte, eher einfache Projekte, ist es sicherlich eine Option Smarty zu verwenden. Den großen Durchbruch wird es jedoch vermutlich nicht erleben, da die Nachteile teilweise doch sehr erheblich sind.

22 Quellenangabe Alle hier aufgeführten Informationen stammen entweder von oder aus dem Buch Smarty – PHP Template Programming and Applications von Lucian Gheorghe, Hansin Hayder und Joao Prado Maia Herausgegeben von Pack Publishing, 2006


Herunterladen ppt "Seminar Internet-Technologie Thema: Smarty Templates Vortragender: Christian Voß Datum: 11.01.2008."

Ähnliche Präsentationen


Google-Anzeigen