Simpel sollte es sein, und trotzdem sollten die Daten gekapselt sein. Auf XML und Co wollte ich aus Gründen der Zeit verzichten, die Administration und Moderation der Daten muss ohnehin durch einen Fachmann - oder mich ;-) - erfolgen.
Mir kam also die Idee, HTML Code in Klassen - respektive späteren Objekten - zu verpacken. Der Code könnte (und meiner Meinung nach sollte das jeder anständige Programmier auch vorschlagen) in einem String gespeichert werden. Nachteil: HTML-Syntax-Highlighting und HTML-Code-Completion gehen dabei in den meisten IDEs verloren. Nun kann man aber den PHP interpreter aber bewusst an gewissen Stellen ausschalten; und hier kommt der Clue.
Tatsächlich ist es möglich HTML Code ausserhalb des PHP interpreters (?>yes.. here<?php) in einer PHP Funktion (die man später in einer Klasse kapseln kann) zu definieren, und diese dann auch aufzurufen. Nachteil: Die Daten werden "ausgegeben" und nicht "returned". Diesem Manko kann man aber ganz einfach mit den Output-Buffer-Funktionen von PHP entgegenwirken.
Ein fertiges Code-Beispiel könnte so aussehen:
<?php
function foo()
{
?>
<strong><em>HTML</em> foobar inside.</strong>
<ul>
<li>Some</li>
<li>sample</li>
<li>HTML</li>
</ul>
<?php
}
ob_start();
foo();
$foobar = ob_get_clean();
?>
<p>You cannot return pure HTML in a function. But you can always outputbuffer it ...</p>
<?php print_r($foobar); ?>
... irgendwie sieht das doch - ..heftig aus.
Ich glaub ich geh wieder C programmieren, da gibts noch sowas wie strikt definierte Typen ... ;-)