Thomas H.: Template-Problematik

Hallo,

ich wollte mir für ein Skript ein einfaches Template machen, um PHP von HTML zu trennen. Das sieht ungefähr so aus:

<DOCTYPE ...>
<html>
<head>
...
</head>
<body>
...
{INHALT}
...
</body>
</html>

Nun erzeugt das Skript den Inhalt und packt in in die Variable $inhalt. Dann wird das Template eingelesen, mit str_replace() {INHALT} durch $inhalt ersetzt und das ganze dann mit echo ausgegeben.

Das funktioniert ganz gut, nur habe ich bei der Erzeugung des Inhaltes so unschöne Dinge wie $inhalt = '<p>Das ist der Inhalt<br />usw...</p>', also doch wieder HTML in PHP. Das sollte doch mit einem Template gerade nicht der Fall sein, oder? Ich habe allerdings keine Idee, wie ich das vermeiden könnte. Hat jemand eine Idee?

Danke im Voraus!
Thomas

  1. Hallo Thomas,

    bevor du dir da was eigenes strickst würde ich auf eine schon vorhandene Template Engine zurückgreifen wie vlib oder smarty.

    Da gibts auch gute Dokumentationen zu, wie man sowas am besten umsetzt.

    Viele Grüße,

    Carsten

  2. die template-problematik besteht vor allem darin, daß in den templates widerum ein mischmatstch von programm und darstellung besteht. darum halte ich templates für müll.

    wenn du wirklich eine trennung von logik und darstellung möchtest, baue eine datenstuktur als ergebnis der anwendungslogick auf, welche dann recht einfach in der darstellung benutzt werden kann.

    zudem kann dieser ergebnisbaum auch zum datenaustausch benutzt werden. (z.b. xml)