Mailinglisten-Archive |
Andre Gemünd wrote: > Damit hast Du vermutlich den Startschuss für eine weitere Runde der größten > PHP-Template-Debatte gegeben. Oh nein, das war der Kerl mit dem "Zum Glück" ;-) [SCNR] > Es geht um folgendes, eine Template-Engine wurde zu dem Zweck entwickelt den > eigentlichen Inhalt ( Texte, Bilder, HTML etc. ), von der sog. Business > Logic ( PHP, Datenbank, Bedingungen etc. ) zu _trennen_. Smarty trennt Business-Logik/Daten von Ausgabe-Logik/Layout. > Mehr oder minder komplexe Kontrollstrukturen innerhalb der Templates > widersprechen diesem Zweck, eben weil ja die eigentliche Programmierung > nichts in den Templates verloren hat. Ansichtssache. Ich finde das Reduzieren von Templates auf das pure Ersetzen von Platzhaltern erhöht nur den Gesamtaufwand der Entwicklung. Auch IT[X] hat doch Kontrollstrukturen: <!-- BEGIN form_address_error --> {form_address_error} <!-- END form_address_error --> Das gleiche in Smarty: {if $form.address.error} {$form.address.error} {/if} Für Loops kann man ähnliches bringen. > Smarty geht ja sogar so weit, das es > eine komplette Mikro-Sprache innerhalb der Templates erlaubt (inklusive > while's, for's, if's, arrays etc), Es gibt {if} und {foreach/section} und die passenden {else}'n. Dass man im Template auf Arrays zugreifen kann, vereinfacht die Programmierung, was man schön am obigen Beispiel sehen kann: {form_address_error} ist ein extra gebauter Platzhalter, {$form.address.error} der Zugriff über ein Array mit allen Formulardaten. Die beiden Beispiele kommen übrigens aus HTML_QuickForm, das ab Version 3 Renderer für Template-Engines unterstützt. Derzeit IT[X]/Sigma und Smarty. Wen es interessiert, der schaue sich die beiden Renderer ITStatic und ArraySmarty (Smarty im CVS) samt den Beispielen it-static und smarty-static an. Der ITStatic-Renderer ist bei nahezu identischem Template weitaus komplexer... > aber genau zu diesem Zweck ist ja PHP > entstanden. Die Frage ist ob wir eine weitere Sprache brauchen, die dann > doch wieder in PHP geparsed wird, welches letztendlich nochmal geparsed > wird.... Schlimmer, sie wird sogar mit PHP zu PHP-Code compiliert... ;-) Aber im Ernst: PHP ist als Template-Engine entstanden, und hat sich zu einer vollwertigen Programmiersprache entwickelt. > der Ansatz von patTemplate (xslt-ähnliche tags, etc) Sowohl patTemplate als auch XSLT bieten Kontrollstrukturen, um die Ausgabe-Logik zu steuern. ThS. -- Dipl. Ing. Thomas Schulz 4bconsult - Beratung für die Baubranche Engeldamm 22 b - 10179 Berlin büro 030 - 27 59 16 67 fax 030 - 27 59 16 68 http://4bconsult.de
php::bar PHP Wiki - Listenarchive