Dienstag, 16. Mai 2006

PHP

PHP und Template Engines

Jeder kennt sie, viele verwenden sie. Die Rede ist von "Template Engines". Template Engines sollen helfen den Programmcode und das Layout zu trennen.

Der Grundgedanke Layout (View) und den Programmcode zu trennen, das ist keine schlechte Idde und dem sollte jeder Programmierer folgen. Das Template Engines überflüssig sind wissen die wenigsten. Vielmehr folgen viele den Heerscharen von Programmieren, die es ihnen vormachen. Letzendlich sind sie so, wie sie verwendet werden unnötig...

Warum sind nun Template Engines unnötig, werden sich viele Fragen. Wie gesagt Template Engines haben einen handfesten Grundgedanken, nur dieser tritt immer mehr in den Hintergrund.

Der Grund hierfür ist, das sich Template Engines immer mehr zu eigenen Programmiersprachen entwickeln. Viele sind soweit verkompliziert worden, das sie mittlerweile einen eigene Art von Interpreter besitzen. So wie beispielsweise Smarty.

Smarty ist der Uhrgestein der Template Engines in PHP. Viele benutzen es, doch ich behaupte es ist nicht nötig, da PHP selbst eine Template-Engine ist.

Folgender Code einer Template Engine sollte dies illustrieren:

Download Code!

  1.  
  2. <INCLUDE FILENAME="somefile.html">
  3.  
  4. <IF NAME="if_var">
  5. <table>
  6.         <LOOP NAME="table_rows">
  7.         <TR>
  8.                 <TD BGCOLOR="#0000FF">{column_1}</TD>
  9.                 <TD BGCOLOR="#0000FF">{column_2}</TD>
  10.                 <TD BGCOLOR="#0000FF">{column_3}</TD>
  11.         </TR>
  12.         </LOOP NAME="table_rows">
  13. </table>
  14. </IF NAME="if_var">
  15.  

Nun wie könnte dies in PHP aussehen?

Download Code!

  1.  
  2. <?include("somefile.html")?>
  3.  
  4. <?if($if_var):?>
  5. <table>
  6.     <?foreach($table_rows as $t):?>
  7.         <tr>
  8.             <td bgcolor="#0000FF"><?=$t['column_1']?></td>
  9.             <td bgcolor="#0000FF"><?=$t['column_2']?></td>
  10.             <td bgcolor="#0000FF"><?=$t['column_3']?></td>
  11.         </tr>
  12.     <?endforeach?>
  13. </table>
  14. <?endif?>
  15.  

Warum sollte man es also komplizierter machen? Manche Leute behaupten PHP-Code in HTML -Dateien könnte den Designer verwirren.

Das mag auf unter bestimmten Gesichtspunkten seine Richtigkeit haben, nur ist es meistens so, daß Designer keine HTML Dateien anfassen. Sie arbeiten mit ihrem Photoshop, Gimp oder anderem Grafikprogramm. Sie würden also nichtmal die HTML-Templates irgendwelcher Template-Engines anfassen.

Mag es am Hype liegen, an Programmierer die nicht nachdenken, oder daran das man es halt so macht wie die anderen es machen. Meine Empfehlung ist PHP für diese Aufgaben zu nutzen. Also nicht noch einen Interpreter für eine interpretierte Sprache nutzen.

Sicherlich generieren manche Template Engines mithilfe "Cachings" auch PHP-Dateien. Nur warum so umständlich, wenns auch einfach geht?

Bewertung: keine, 0 Stimme(n) 406 Klicks
PHP
Von Mr.Foo in PHP am 16.05.06@21:10 Uhr

Trackbacks
Trackback für spezifische URI dieses Eintrags

Keine Trackbacks

0 Kommentare
Ansicht der Kommentare: (Linear | Verschachtelt)

Noch keine Kommentare


Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
 
 

Mr. Foo

PHP und Template Engines

  • Homepage

Suche

Kategorien

  • C-Sharp (4)
  • Datenbank (28)
  • Delphi (2)
  • Entwicklung (36)
  • Flash (5)
  • Games (10)
  • Gutscheine (4)
  • Hardware (14)
  • HTML CSS (15)
  • Internet (87)
  • Java (32)
  • Javascript (24)
  • Linkdump (9)
  • Linux (96)
  • Low-Level (10)
  • Lua (8)
  • Musik (9)
  • Netzwerk (25)
  • New World Order (109)
  • Perl (3)
  • PHP (123)
  • Magento (5)
  • Symfony (3)
  • Zend Framework (7)
  • Probleme und Lösungen (26)
  • Python (22)
  • Ressourcen (23)
  • Sicherheit (91)
  • Software (58)
  • Sonstiges (45)
  • Own Stuff (46)
  • Spass (45)
  • Technik / Wissenschaft (4)
  • Tips (15)
  • Weisheiten (16)
  • Windows (23)
  • Wort des Tages (15)


Alle Kategorien

Archive

  • Februar 2012
  • Januar 2012
  • Dezember 2011
  • Das Neueste ...
  • Älteres ...

Abonnieren lohnt sich!

  • XML RSS 2.0 feed
  • ATOM/XML ATOM 1.0 feed
  • XML RSS 2.0 Kommentare

Tagcloud

Datenbank Entwicklung Internet Java Javascript Linux Lösung Netzwerk News New World Order PHP Problem Probleme und Lösungen Sicherheit Software Sonstiges Spass Tipp Update Windows

Beliebte Einträge

  • Magento ist scheisse (188)
  • Plugin-container.exe deaktivieren (101)
  • C compiler cannot create executables unter Debian (53)
  • BWin Betrug und Abzocke bei Minigames? (49)
  • Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert) (41)
  • Sicheres Kontaktformular mit PHP - Spam verhindern (37)
  • Es konnte keine TCP/IP-Verbindung mit dem Host hergestellt werden (26)
  • UML-Diagramme aus Java-Klassen generieren – Java2UML (25)
  • Option Bug im Internet Explorer bei Nutzung von innerHTML und Javascript (24)
  • Zend Studio - Javaw.exe lastet die CPU aus (24)

Kommentare

sandi zu Plugin-container.exe deaktivieren
Mo, 06.02.2012 11:10
Leider hat es nicht geklappt. Jetz [...]
Frank zu Magento ist scheisse
So, 05.02.2012 21:58
Seit etwa 6 Monaten bin ich auf de [...]
hansie zu Canon Blink Codes
Sa, 04.02.2012 19:49
Hallo, mein Canon Drucker MP 630 [...]
Bachsau zu Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert)
Mi, 01.02.2012 22:54
Bei Linux machen die Kernel-Entwic [...]
Mr. Foo zu Scheiss Linux - USB-Platte viel zu langsam (wenns mal funktioniert)
Mi, 01.02.2012 21:47
Also so kurz mal probiert hab ich [...]
 

Kontakt/Informationen