PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Trennung von HTML-Ausgabe und Logik



tschloss
02-09-2004, 08:53
Ich habe einige fertige PHP Pakete auf meinem Server installiert und seit kurzem auch ein eigenes Projekt, welches ich "von Scratch" selbst programmiert habe (http://turnierkalender.net-hitec.de).

Mir fällt auf, dass Programme sehr schnell sehr unleserlich werden und auch vom Programmierprinzip "Trennung Logik von Ausgabe" sehr unsauber sind.
Diese ständige Mixtur von "echo <HTML-Code....>" und Logik (Ermittlung des nächsten Strings, der als Content in die HTML-Struktur eingestreut wird) macht mich nicht happy.

Gerade wenn man in Tabellen arbeitet, hängt die Programmlogik sehr fest mit der Ausgabeformatierung zusammen. Änderungen führen schnell zu inkorrektem HTML-Code.

Meine Frage:
Gibt es
a) Programmiertechniken
b) Tools, die von einer abstrakteren Warte aus PHP erzeugen (Development Time)
c) Middleware, die aus PHP genutzt genutzt werden kann (Run Time)

Oder stellt das für den erfahrenen Programmierer kein Problem dar? Was mein ihr, wie löst ihr das Thema?

Danke und Grüße
Thomas

Gaert
02-09-2004, 09:21
Hallo,

das Stichwort heißt Template!

Schau dir z.B. mal http://smarty.php.net an.

Gruß,

Gaert

elrond
02-09-2004, 09:51
ich benutze seit Jahren fastTemplate und bin sehr zufrieden damit.

Ich hab's irgendwann ein wenig erweitert, um auch die Templates in einer DB haten zu können....

tschloss
02-09-2004, 11:28
Danke für eure Tipps.
Ich habe da mal reingeschaut und verstehe jetzt grob die Arbeitsweise. In jedem Fall sieht das schon ziemlich sauber getrennt aus - klasse Tipp :) !

Mein PHP-Programm enthält also statt der "echo..." Befehle nur noch calls zum Smarty-Template (Werte setzen, Seite (immer ganze Page?) darstellen).

So ganz kann ich mir noch nicht vorstellen, wie praktikabel das in der Praxis ist und wie schwierig es ist, die Templates mit den Variablen zu erstellen. Besonders, wenn der Inhalt etwas komplexer ist, also z.B. die Monatsansicht eines Kalenders, bei dem Farben und Tabellenformate von den Wochentagen abhängen (also die Darstellung variabel an der Programmlogik / dem Inhalt hängt).

Ich geh mal davon aus, dass man solche Aufgaben (ist ja nichts Besonderes) damit abwickeln kann. Muss es einfach mal probieren.

Bis denne.
Grüße
Thomas

elrond
02-09-2004, 11:34
bei mir sieht's im Code dann irgendwie so aus:



$tpl->assign(array(
"{LETTERTABLE}" => getlettertable($anteilid),
"{LTEILN}" => $lteiln,
"{POSTWEG}" => $obj_anteil->postweg,
"{RELOADURL}" => $PHP_SELF."?action=anteil&opt=01&pagenr=".$pagenr."&anteilid=".$anteilid."&pagenr=$pagenr",
"{PAGENAME}" => $PHP_SELF
));
$tpl->parse("MAIN","anteil_main_page4");


$tpl->FastPrint();


mit ein wenig zeugs drunherum...

PS: Jubiäum: mein 555. :D

BlueJay
03-09-2004, 08:30
So ganz kann ich mir noch nicht vorstellen, wie praktikabel das in der Praxis ist und wie schwierig es ist, die Templates mit den Variablen zu erstellen. Besonders, wenn der Inhalt etwas komplexer ist, also z.B. die Monatsansicht eines Kalenders

Ich habe bisher mein eigenes Template-Süppchen gekocht, aber nach bekanntem Strickmuster.
Und so kan man kompliziertere Sachen wie formatierte Tabellen variabler Länge erst mal in einer Variablen sammeln, die man dann ins Template einsetzt.