1 / 22

Seminar Internet-Technologie

Seminar Internet-Technologie. Thema: Smarty Templates Vortragender: Christian Voß Datum: 11.01.2008. Inhalt. Was ist Smarty Der Entwicklungsprozess Was Smarty bietet Smarty Projekte – Ein Beispiel Die Debugging Konsole Smarty in der Praxis Fazit Quellenangabe.

bobby
Download Presentation

Seminar Internet-Technologie

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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. Smarty Was ist Smarty ? Smarty ist eine Templatesystem welches Programmieren und Designer ermöglicht getrennt an einem Projekt zu Arbeiten. Designer Klassischer Ansatz Mit Smarty Datenbank Prog. Logik Prog. Design Datenbank Logik

  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 18.01.2001, enthielt bereits Caching • Version 2.0 erschien im März 2002 • wichtigste Neuheit: Plug-ins • Version 2.6 veröffentlich am 19.11.2003 • Aktuelle Version 2.6.18 stammt vom 07.03.2007 • Dokumentation verfügbar in vielen Sprachen, • seit Anfang März 2003 auch auf Deutsch

  5. Was Smarty bietet

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

  7. Was Smarty bietet (3) Geschwindigkeit • Templates werden „compiliert“ • Seiten können gecachet werden • Unter bestimmten Vorrausetzungen, schneller als pures PHP 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. Was Smarty bietet (4) Filter • Pre Filter • Post Filter • Output Filter • Vielfältige Möglichkeiten zur Optimierung Mehrsprachigkeit • Templates können einfach für verschiedene • Sprachen angepasst/erstellt werden • Integration der PHP gettext Funktion

  9. Was Smarty bietet (5) Des weiteren bietet Smarty für Designer viele aus anderen Sprachen bekannte Strukturen und Funktionen u.a.: • 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. Smarty Projekte – Ein Beispiel Der PHP Quelltext Der Quelltext ist eine normale PHP Datei (hier ohne Logik, Datenbankzugriffe, etc) mit zusätzlichem Smartycode. index.php <?php require 'Smarty.class.php'; $smarty = new Smarty; $smarty->compile_check = true; $smarty->debugging = true; Smarty ist eine Klasse in PHP Es gibt diverse Einstellungen $smarty->assign("Namen", array("Christian Voß", "Michael Klenke", "Eric Sternberg")); assign (x,y) x = Variablen Name Y = Variablen Werte

  12. Smarty Projekte – Ein Beispiel Der PHP Quelltext $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 => "11.01.2008", 1001 => "12.01.2008", 1002 => "18.01.2008")); $smarty->assign("aktuelles_datum", 1000); Es können alle bekannten PHP Datentypen zugewiesen werden, sowie ein und mehrdimensionale Arrays. $smarty->display('index.tpl'); ?> display(tlp) lädt das Template „tlp“

  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: seminar.conf title = seminar internet-technologie

  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. header.tlp {config_load file=seminar.conf} <HTML> <HEAD><TITLE>{$apptitle}</TITLE></HEAD> <BODY bgcolor="#ffffff"> <p align="center"><strong><font size="+4"> {#title#|capitalize} </font></strong></p> {$varname} greift auf die Inhalte von Variablen zu

  15. Smarty Projekte – Ein Beispiel Die Template Dateien Die eigentliche Hauptdatei, welche von index.php geladen wurde. index.tlp {include file="header.tpl" apptitle="Ein einfaches Smarty Beispiel"} <table width="100%" border="1"> {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 {foreach item=name from=$Namen} <tr> {foreach item=info from=$Themen[$name] name="inner"} {if $smarty.foreach.inner.first} <td width="20%" height="117">{html_image file=$info}</td> {else} <td width="80%"><p><strong><font size="+2">Thema: {$info}</p> Gehalten von: {$name}</strong></font></td> {/if} {/foreach} </tr> {/foreach} For…each iteriert ein Array und bietet zusätzliche Informationen. {html_image file} ersetzt den HTML Befehl <img src=>.

  17. Smarty Projekte – Ein Beispiel Die Template Dateien Anderes Datum wählen: {html_options name=datum_auswahl options=$datum selected=$aktuelles_datum} {include file="footer.tpl"} • 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 eMail Links) • math (ermöglicht mathematische Berechnungen) • popup (erzeugt ein Popup Fenster)

  18. Smarty Projekte – Ein Beispiel Die Template Dateien footer.tlp <br>Seite wurde erstellt: {$smarty.now | date_format:"%d.%m.%Y %H:%M:%S"} </BODY> </HTML> 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 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.

  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 http://www.smarty.net oder aus dem Buch „Smarty – PHP Template Programming and Applications“ von Lucian Gheorghe, Hansin Hayder und Joao Prado Maia Herausgegeben von Pack Publishing, 2006

More Related