Hello,
Dann bedenke auch, dass PHP selbst bereits ein Template-System ist.
Meinst Du, dass man PHP wirklich bedenkenlos als Template-System bezeichnen darf?Ja.
Dafür kann es mMn viel zu viel.
Ich würde einem Template-System nur deshalb nicht mehr so nenenn wollen, nur weil man über einen bestimmten Funktionsumfang hinausgehen kann. Deswegen erfüllt es immer noch die Aufgaben eines Templatesystems.
PHP ist eine embedded script language.
Und sie kann trotzdem weiterhin auch als Templatresystem eingesetzt werden.
Eine Template-Sprache darf aber genauso, wie HTML, keine Programmkontrolle erlangen, sondern nur noch vorgefertige Aktionen beschreiben und zur Ausführung bringen.
Das würde den Begriff Template-System sehr stark einschränken. Ist nicht bereits ein Wiederholungsmechanismus ein System zur Programmkontrolle?
Der Wiederholungsmechanismus selber gehört aber nicht ins Template. Er fällt in den Bereich Datenaufbereitung und Datenkopplung, an die man den User aber nicht heranlassen sollte. Bei PHP ist diese Einschränkung aber nicht möglich.
Darf eine Entscheidung, welcher Inhalt in bestimmten Situationen (z.B. Fehlerfall vs. Gutfall) auszugeben ist, nicht innerhalb eines Templates gefällt werden?
Nein, keinesfalls. Dies ist Sache von Controller und ggf. noch Datenmodell, sofern man "Template-System" überhaupt mit "Teil von MVC-Modell" übersetzen darf. Das Template gehört in den den Teil des View, der keinesfalls eigene Entscheidungen treffen darf, geschweige denn Programmkontrolle erlangen darf (außer vielleicht für seinen eigenen Bereich).
Wenn die Antwort auf die letzte Frage ja (darf nicht) wäre, würde das den Aufwand am Ende nur komplexer machen, ohne dass ich da groß einen Nutzen sehen kann. Für jeden Fall müsste dann ein eigenes Untertemplate (in einer eigenen Datei) erstellt werden, das von der Programmlogik eingebunden wird, wenn man nicht den Ausgabecode direkt in der Anzeigenlogik stehen haben will, was wiederum ein Editieren erschweren würde.
Ich denke, je komplexer eine Ausgabelogik aufgrund des Anwendungsfalls sein muss, desto mehr Hindernisse hat man zu überwinden, wenn das Templatesystem keine mächtige Programmiermöglichkeit mit sich bringt.
Es muss eine mächtige Auswahlmöglichkeit besitzen, aber keinerlei Programmiermöglichkeit.
Dabei muss es nur dort über die Fähigkeiten von HTML hinausgehen, wo dieses zu starr ist. Vermutlich wird HTML irgendwann einmal sowieso als Templatesystem ausreichen, dem man nur noch irgendwie geordnet die Daten zu übergeben hat und alles andere macht dann das HTTMML (HyperText Template Markup and Manipulation Language).
Die Betonung liegt hier auf "Möglichkeit". Ein Anfänger sollte idealerweise keine Einstiegsprobleme haben, aber er sollte auch nicht ausgebremst oder zum Systemwechsel gezwungen werden, wenn er fortgeschritten ist.
Das verstehe ich jetzt nicht. Was haben die Fähigkeiten eines Anfängers mit den Fähigkeiten eines Template-Systmes zu tun?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg