dedlfix: Smarty o.a. TemplateEngines

Beitrag lesen

Tach!

darf das Template php-code enthalten, bzw, läuft das auch über den Preprozessor?
[..] Wenn du also mischst, bringst du nur die Nachteile beider Systeme zusammen.
Mein Ziel ist es, die Vorteile zusammenzubringen ;)

Definiere das was du als Vorteil ansiehst, beziehungsweise warum du überhaupt eine Template-Engine einsetzen möchtest.

Wenn du PHP-Code im Template verwenden kannst, warum nimmst du dann nicht durchgängig PHP-Code?
Warum nicht beides zusammen? Wo siehst Du darin die Nachteile?

Die "reine" Lehre der Template-Engines sagt, dass PHP-Code nichts in der Ausgabe zu suchen hat. (Das mag man sehen, wie man will.) Trotzdem braucht es für die Ausgabe eine gewisse Portion Logik, zumindest Fallunterscheidungen und Wiederholungen. Oder man definiert Blöcke und steuert deren Anzeige außerhalb des Templates (à la PEARs HTML_Template_IT).

Normalerweise will man diese strikte Trennung von Template und Geschäftslogik, wenn der Designer zwar HTML kann und nur noch ein bisschen Template-Engine-Syntax lernen soll. Wer die Grundzüge von PHP beherrscht, kann das bisschen für die Ausgabe benötigte PHP auch gleich ins Template einbauen. Es spricht nichts gegen eine Trennung von Verarbeitung und Ausgabe, es reicht meiner Meinung nach jedoch, diese auf logischer Ebene und nicht auf Code-Typen-Ebene zu vollziehen. Bestimmte Konstrukte, die in PHP zu lang zu tippen sind, kann man ja mit Helper-Funktionen abkürzen.

Ich sehe keinen gesteigerten Sinn darin, sich zusätzlich Template-Syntax ans Bein zu binden und dann doch wieder direktes PHP zu verwenden. Was soll denn die Aufgabe dieses PHP-Blocks sein? Und warum kann diese nicht in die Geschäftslogik verlagert werden?

Savant3 als eine PHP-Code verwendende Template-Engine. Das ist daselbe Prinzip, wie es auch das Zend Framework out-of-the-box für seine Views verwendet.

dedlfix.