Der Template Designer… (warum smarty doof ist #3)


Einer der Vorzüge von Smarty ist, dass Template Designer nicht programmieren können müssen. Fragt sich nur was zum Himmel ein Template Designer ist… jemand der html kann aber so überhaupt gar nicht programmieren und deshalb ausschließlich für die Pflege der Templates zuständig ist?! Sowas gibt’s? Und wieso sollte dieser jemand mit Smarty besser zurechtkommen als mit php?

Die Idee hinter einer Template-Engine ist die strikte Trennung von Applikations- und Darstellungsebene. Daraus folgend hat eine Template-Engine eigentlich auch nur folgende Aufgaben: Platzhalter mit Inhalt ersetzen und Blöcke darstellen (wiederholt darstellen, nicht darstellen). Dafür benötigt man also ausschließlich nur Variablen, If-Anweisungen, Schleifen und includes. Das kann man in php folgendermaßen abbilden:

<?=$sInhalt?>
<? if ($bBedingung) { ?>…< } ?>
<? foreach($aVariable) { ?>…<? } ?>
<? include „subtemplate“; ?>

Alle darüber hinaus gehenden Funktionen, Ausdrücke, Zuweisungen, Berechnungen… gehören eigentlich nicht in’s Template. Smarty schießt deshalb in diesem Punkt weit über das Ziel hinaus und ist für den „Template Designer“ durch die unnötig umfangreiche Funktionalität ironischerweise auch sicherlich schwieriger zu lernen als die oben dargestellten 4 php-Konstrukte.

Advertisements

2 Gedanken zu “Der Template Designer… (warum smarty doof ist #3)

  1. Wenn das mal keine Antwort auf meinen Kommentar war 😛

    Ich wollte nicht unbedingt Teufelsadvokat spielen, ich finde Smarty auch doof. So wahnsinnig überladen wie das ist. Und klar ist PHP, richtig benutzt, eine eigene Templatesprache. Frameworks dieser Art sind meiner Meinung nach hauptsächlich gut für eine strikte, deutlich sichtbare Trennung des:

    – Codes. Was ist der Unterschied von HTML in PHP-Skripts und PHP in HTML-Vorlagen? NUR PHP und NUR Smarty/Whatever-Templatesprache ist da klarer.

    – Inhalts. In reinen PHP-Templates kann man auf alle vorher irgendwann mal definierten Variablen zugreifen. Gut, register_globals ist mittlerweile zum Glück so gut wie tot, aber trotzdem sollte die HTML-Ausgabe nur das anzeigen, was auch explizit dafür vorgesehen ist.

    Natürlich, wenn man alles richtig macht, spielt dieses Argument keine Rolle. Aber welcher Programmierer macht schon alles richtig? Außerdem verschafft einem eine klare Trennung meiner Meinung nach einen besseren Überblick.

    Aber wie gesagt: Smarty ist selbstverständlich doof.

  2. Ja, stimmt, als ich fertig mit Antwort schreiben war dachte ich das das eigentlich sehr gut als neuer Artikel #3 passt 😉

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s