Philipp Hasenfratz: Schweiz an selfforum: Hallo, hallo?

Beitrag lesen

Halihallo Christian

??? - Das Forum hat mir dieses Posting einfach so geschluckt, böses! - Hab ich nämlich schon erfolgreich gepostet gehabt. Nun denn, gleich nochmal (ich hatte es noch in ner Text-Datei gespeichert gehabt, deshalb bin ich jetzt nicht böse [musste es jedoch aus'm Papierkorb retten ;)]) :

Ich persönlich wollte eigentlich antworten, aber hab's dann wieder verworfen (weil ich mir da ein bisschen blöd bei vorkam): <kurz-zusammenfassung>Warum mit OOP XHTML generieren? Wieso verwendest Du keine Template-Engine?</kurz-zusammenfassung> Oder habe ich da was falsch verstanden?

Erstmal, danke, dass trotzdem noch eine Nachricht gekommen ist ;)

Eine Template-Engine? - Ja, das Prinzip wäre denkbar, jedoch ist dann die generierung des XHTML-Codes dennoch auf der Seite des Programmierers. Was ich gerne hätte, ist ein Tool, welches, unter verwendung von OOP, XHTML Code produziert. In der ersten Version der genannten Software hatte ich auch Templateorientiert gearbeitet, jedoch durch die Sprachunabhängigkeit musste ich, der einfachheithalber, auf eine "im Code stehende Ausgabe" umsteigen, da die Wartung sonst etwas zu mühsam geworden wäre. Da nun der Quelltext eines jeden Designs/Ausgabe im Quellcode stattfindet, würde ich mir eine "Zwischenschicht" für die XHTML Codierung wünschen.
Ich habe mir lange überlegt, ob ich Templates verwenden soll; ich habe mich dann jedoch anders entschieden, da der Datentyp, den ich übergeben müsste um eine Seite abzubilden, etwas komplex geworden wäre (z. B. Accountübersicht mit variabler Länge und Breite mit verschiedenen Spalten, verschiedenen Inhalts => das abzubilden gäbe ein Datentyp, der ziemlich verschachtelt aussehen würde => meiner Meinung nach ist der Wartungsaufwand hier viel zu gross, einfacher geht es, wenn der Code gleich "on-the-fly" generiert wird).
Dieses on-the-fly Prinzip hat jedoch den Nachteil, dass die Ausgabe direkt erfolgt (ohne Umweg über Templates), will heissen, dass man den HTML Code direkt in den Modulen/Programmen sieht; das wäre auch kein Problem, jedoch habe ich mich nicht an XHTML-Standard gehalten. Um dies gleich per se aufzuzwingen wäre ein Modul (XHTML) notwendig, welches implizit validierten Code ausgibt.
Neben bei ein weiterer Grund, warum ich mir ein XHTML-Modul wünschen würde: mir graust etwas vor einer Ausgabe wie print '<h1>t</h1>blabla<p style="align: left">test</p>';
das ist mir einfach zu "hard-gecoded". Ich habe es lieber, wenn alle Attribute und Tags über ein Modul generiert werden (die Vorteile wurden genannt):

$body->h1('t');
$body->text('blabla');
$body->p('test', { style=>{align=>'left'}} );
print $body->as_string

braucht einige Zeichen mehr, jedoch ist das IMO "schönes" Programmieren ;)
Ach, gleich noch was:

my $els = $body->getElementsByTagName( 'a' );
for ( my $i=0; $i < $els->getLength; $i++ ) {
   my $a_element = $els->item( $i );
   $a_element->href->add( 'SessionID'=>42 );
}

lässt auch schöne Automatisierungen zu ;)

Viele Grüsse und Danke

Philipp