Mailinglisten-Archive |
Hallo Michael, Michael Pietsch schrieb: > Gibt es dafuer einen Königsweg oder muss man sich halt durch das > entstehende Code-Gestruepp durchkaempfen? > Kann man strikt den Programmablauf und die HTML-Ausgabe trennen > oder greift > man da am besten auf irgend etwas fertiges zurueck (HTML-Editor ...)? Es gibt nicht nur einen Königsweg, es gibt sogar 2. Das Problem der zunehmenden Komplexität von PHP-HTML-Geflechten wird meistens mit Templates gelöst. Templates trennen die Funktionalität vom Layout, indem das Layout in getrennte Dateien stattfindet. Diese Template-Dateien sind eigentlich ganz normale HTML-Dateien, nur an die Stelle der dynamischen Abschnitte/Texte tritt ein Platzhalter, die sogenannte Template-Variable, meist etwas in der Art "{TITEL}", die dann z.B. so im HTML-Source wieder- zufinden ist : "<html><head><title>{TITEL}</title></head>..." . Auf der anderen Seite, im Code selbst, wird meist eine Template-Klasse benutzt, die Funktionen zur Belegung und zum Ersetzen der Templatevariablen bietet. Templates bieten zwei Vorteile: - sie lassen sich durch einen normalen HTML-Editor erstellen und bearbeiten - durch die hierarchische Struktur von HTML lassen sich auch geschachtelte Templates oder Blöcke übersichtlich nutzen. Die gängigsten Template-Lösungen sind wohl die FastTemplates, die (ohne die PHPLIB nutzbaren) Templates der PHPLIB oder Till & Tobias EasyTemplates. Ich habe mit der PHPLIB-Klasse, abgesehen von der seltsamen Block-API, nur gute Erfahrungen gemacht. Der zweite Königsweg ist XSLT . Glücklicherweise greift uns PHP mit der Unterstützung der Sablotron-Engine dabei unter die Arme. XSLT geht bei der Trennung von Layout und Funktion noch deutlich weiter, weil es keine Templatevariablen, sondern die komplette Ausgabe in logischer Darstellung als Grundlage nimmt. Praktisch heisst das : Das PHP-Script erzeugt eine XML-Datei, die die komplette Ausgabe enthält. Aus diesem XML läßt sich mit verschiedenen XSLT-Stylesheets alles mögliche an Ausgabe erzeugen, wie etwa HTML, ein anderes XML, WML oder auch mit einem weiteren Zwischenschritt PostScript oder PDF. Der XSL-Syntax ist erheblich komplexer als die Erstellung von Templates, und so ist auch die Lernkurve deutlich steiler. Im Gegenzug sind die Möglichkeiten natürlich viel weiter gespannt. Viele Grüße, johann
php::bar PHP Wiki - Listenarchive