molily: Menschelei: HTML in PHP / PHP in HTML

Beitrag lesen

Hallo,

Ich habe schon oft versucht, zu erfahren wie andere das machen aber bekomme von den meisten einfach nur die Antwort "verwende eine Template-Engine".

Und was ist an der Antwort schlecht?

Wenn ich das ganze jetzt komplett objektorientiert angehe, und eine Klasse verwende, die mir das Formular erstellt, schaut es nachher meistens noch "hässlicher". Bei 0815 Formularen lasse ich mir das einreden, aber wenn das Formular etwas komplexer aufgebaut ist habe ich noch nie eine Klasse gesehen die das vernünftig lösen kann.

Hässlichen Low-Level-Code, der HTML-Code durch Stringverkettung zusammenbaut, in eine Klasse zu packen macht ihn nicht schöner.  Das ist nicht Sinn der Sache.  Der Sinn ist Abstraktion.

HTML programmatisch zusammenzubauen ist nie schön. Webframeworks bringen grundlegende Helfer mit, damit diese Klassen möglichst lesbar sind. Sie arbeiten nicht direkt auf Stringebene, sondern auf Element- und Attributebene oder sogar auf DOM-Ebene. Dadurch werden die Logiken nicht simpler, aber der Code sauberer. Durch die Separation of Concerns hat man z.B. nicht ständig mit dem Escapen von Daten zu tun. Das passiert automatisch auf einer Ebene darunter.

Einige Templating-Sprachen sind XML-basiert und somit ggf. durch XSL transformierbar. Sie erlauben es, Markup deklarativ zu erzeugen und andere Komponenten mit einfachen Elementen einzubinden. Über Expressions werden die Daten eingebunden.

Mathias