Studium, Ausbildung und Beruf

web uni-protokolle.de
 powered by
NachrichtenLexikonProtokolleBücherForenFreitag, 28. November 2014 

Smarty


Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier.

Inhaltsverzeichnis

Historisches

Die Entwicklung an Smarty begann nach Vorarbeit 2001. Die Entwickler sind Monte Ohrt Andrei Zmievski. Smarty im WWW: http://smarty.php.net

Was ist Smarty?

Bei der Entwicklung von Webapplikationen empfiehlt sich dringend Code (z.B. PHP ) und Ausgabe ( HTML ) strikt zu trennen. Insebesondere bei grösseren bietet diese Maßnahme viele Vorteile:

  • Code und Layout können getrennt (dh von verschiedenen Personen) parallel entwickelt werden.
  • Sowohl PHP- als auch HTML-Code bleiben
  • Einfache Wiederverwendbarkeit des Codes (z.B. braucht für dieselbe Applikation ein einem anderen Layout Context nur den HTML-Code zu ändern).

Smarty ist eine OpenSource PHP-Library die ermöglicht genau das einfach in PHP zu

Wie funktionieren Templates?

Angenommen wir möchten in PHP Daten Ohne Trennung von php- und HMTL-Code könnte beispielsweise so aussehen:

 <table><tr><td><? echo 'first name: '.$firstname; ?></td></tr></table> 

Mit Smarty lassen sich php und trennen indem im HTML-Code Platzhalter vorgesehen sind in die php dann Smarty die Daten einfügt.

Das obrige Beispiel würde mit Smarty folgerndermassen aussehen:

php-Code:

 <? $template = new Smarty; // erzeugen $template->assign('firstname' $firstname); // Wert in Platzhalter $template->display('template.html'); // HTML-Output ?>  

template.html:

 <table><tr><td>first name: {$firstname}</td></tr></table>  

Schon bei diesem Beispiel sieht man die Übersichtlichkeit enorm verbessert wird da man in der php-Applikation auf den eigentlichen Code kann und dieser nicht im HTML-Code verstreut Umgekehrt tut sich ein Webdesigner leichter der dem php-Code eigentlich nichts zu tun haben sondern guten HTML-Code schreiben will.

Weitere Funktionalität

In der Praxis benötigt man jedoch Möglichkeiten wenn man php und HTML wirklich will. Deshalb bietet Smarty zahlreiche Funktionen mit komplexere Daten (Arrays etc.) auf beliebige Art werden können. Ein PlugIn-Schnittstelle bietet dem Programmierer Möglichkeit die Funktionalität von Smarty zu erweitern.

Beispiel: Template-Code zur formatierten Ausgabe eines $list:

 <table> {foreach from=$list item=sometext} <tr><td>{$sometext|nl2br}</td></tr> {/foreach}  
(die Funktion nl2br konvertiert sämtliche Zeilenumbrüche <br>)

Performance

Smarty verarbeitet die Daten und Templates zwei Schritten was die Performance massiv steigert:
  • zunächst wird aus php- und HTML-Code und für den Programmierer transparent ein neue generiert das sowohl HTML als auch php - also dass was ein Programmierer ohne sonst selbst machen würde. Nur wenn sich Datei ändert wird diese temporäre php-Datei aktualisiert. braucht das Template nicht bei jedem PageView geparst werden.
  • Bei Bedarf kann Smarty auch den HTML-Output cachen. Das bedeutet das der Webserver bei einem Zugriff eine statische HTML-Seite liefert besonders bei Datenbankzugriffen in php eine massive des Servers bedeutet. Der Programmierer hat in Fall nur zu beachten dass nach Aktualisierung Datenbank der Cache gelöscht wird gerade bei kommen Datenbankaktualisierungen in der Regel meist viel vor als Datenbankabfragen.




Bücher zum Thema Smarty

Dieser Artikel von Wikipedia unterliegt der GNU FDL.

ImpressumLesezeichen setzenSeite versendenSeite drucken

HTML-Code zum Verweis auf diese Seite:
<a href="http://www.uni-protokolle.de/Lexikon/Smarty.html">Smarty </a>