Sven Rautenberg: Website mit Templates erstellen

Beitrag lesen

Moin!

Naja eigentlich habe ich noch nicht so recht die Ahnung.Mir wurde nur gesagt das es wohl sehr gut sein soll mit templates seine homepage zu erstellen. Hast du vielleich noch andere tuts wo ich lesen kann wie ich anfange und dann schritt für schritt weiter...?!

Tutorials dazu kenne ich keine - mir war die Lage eigentlich schon immer klar. Deshalb mach' ich dir mal eben ein Kurz-Tutorial. Ich bitte um Würdigung. :)

Wenden wir uns also zuallererst der Frage zu: Warum Templates?

Templates sind Vorlagen, die für den jeweiligen Zweck "passend" ausgefüllt werden. Das ist absolut vergleichbar mit dem Ausfüllen eines Papierformulars, beispielsweise eines Überweisungsträgers bei der Bank. Damit ist sichergestellt, dass gewisse Informationen immer an derselben Stelle platziert werden.

Im Gegensatz zu Papierformularen, bei denen es ja in erster Linie um das standardisierte Erfassen von Daten geht, haben Templates den Vorteil, dass gewisse Dinge wie eben ein Standard-Design nur an einer einzigen Stelle abgelegt werden müssen und darauf von jeder Stelle aus zugegriffen werden kann.

Im Prinzip ist PHP selbst schon eine eigene Template-Engine, die genau das macht, was Templates allgemein immer machen: Man mixt fest definierte Ausgabeteile (in diesem Fall HTML-Code) mit Code, der an einer bestimmten Stelle variablen Inhalt ausgibt (z.B. <?php echo $variable; ?>), und erhält als Ergebnis eine fertige, jeweils unterschiedlich ausgefüllte HTML-Seite.

Dummerweise ist PHP eine derartig mächtige Programmiersprache, dass man innerhalb des Templates praktisch alles machen kann: Rechnen, Datenbanken abfragen, fremde Server kontaktieren, Mails abfragen, per FTP uploaden etc. Das führt, wenn man es als Programmierer nicht absolut konsequent betreibt, sehr schnell zu sehr komplexem Code, weil sich PHP- und HTML-Bereiche munter abwechseln.

Als Resultat entsteht dann ein PHP-Script, in das kaum noch jemand ohne PHP-Kenntnisse eingreifen kann, weil er dann mit Pech genau das ändert, was zu einem PHP-Fehler führt, und es dann nicht mehr repariert kriegt.

Deshalb hat sich schon seit ziemlich langer Zeit bei den Programmiersprachen und den Programmierern die Tendenz entwickelt, Ausgabetext (in diesem Fall HTML) und Programmcode streng zu trennen. Es hat einfach Vorteile, wenn man sich im PHP-Code gedanklich nur darum kümmern muß, "Wo bekomme ich meine Daten her?", "Wie muß ich die verarbeiten/verrechnen/manipulieren?" und "Ich gebe das Ergebnis dann ans Template weiter!" zu beantworten, sich aber an dieser Stelle absolut _nicht_ um die Darstellung des Programmergebnisses zu kümmern.

Das Template schreibt man dann natürlich auch selbst und kann in einem zweiten Gedankenschritt dann überlegen, "Welche Daten berechnet das Skript?" und "Wie und wo sollen die erscheinen?" zu beantworten.

Die Template-Engine übernimmt dann die Mischung und Verbindung zwischen diesen beiden Gedankenschritten: Die Ergebnisse des PHP-Skriptes werden an geeigneter Stelle in das Template eingebaut und das Resultat ausgegeben.

Diese Trennung der Aufgabengebiete ist für übersichtlicheren Code unabdingbar. Und außerdem gewinnt man eine deutlichere Freiheit gegenüber der Gestaltung. Denn zum Ändern der Darstellung muß jetzt nur das Template geändert werden - aber der restliche PHP-Code bleibt absolut unverändert.

Diese Flexibilität ließe sich beispielsweise bei einem Gästebuchanbieter umsetzen. Der kann erlauben, dass sich die einzelnen Nutzer ein Template selbst erstellen, um ihr Gästebuch dem eigenen Design anzupassen. Dazu müssen sie eben nur die diversen Variablen, die die Gästebuchdatenbank und das Skript zur Verfügung stellen, an die richtige Stelle im HTML-Code einbauen und haben sofort ein eigenes Design - und jedes Gästebuch sieht dann anders aus, obwohl derselbe PHP-Code verantwortlich ist.

Deshalb: Templates sind extrem empfehlenswert, sobald man mehr als nur kleine Skripte schreibt. Gästebücher, Webshops, Newsticker - eigentlich alles, was über den experimentellen Status hinausgeht und "vernünftig aussehen" soll, sollte mit Templates gelöst werden.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|