Ajo, also das ist auch so angedacht. Mitlerweile habe ich clone soweit ausgetestet.
Also, zu start lege ich per __construct eine Templateklasse an, wobei in $template der Dateiinhalt gelesen wird, $inhalt die Platzhalter und Inhalte bekommt und $objekte die Subtemplates. Also zum Beispiel eine Tabellenzeile zum dublizieren.
Wenn ich so ein Untertemplate habe, verwende ich nun clone($this) und setze dann die Variablen von oben per unset auf ''. Also nix.
Dann hau ich statt wie im constructor den Inhalt (hier mal die Tabellenzeile) wieder in die $template und lasse wieder nach Untertemplates suchen.
Sprich es werden solange Objekte ineinander verschachtelt, bis alle Ebenen abgearbeitet sind.
Die oben genannte Tabellenzeile würde also in:
$this->objekte['tabellenzeile'] als eigentständiges Objekt sitzen. Dieses würde ich dann per Ausgabe in die übergeordnete Templateclass einsetzen. Also quasi ich lasse das Unterobjekt eine Ausgabe vornehmen und packe diese im entsprechenden Platzhalter in $this->inhalt.
Soweit so gut. Laut Ausgabe von PHP hat er die Objekte auch brav erstellt und der Inhalt stimmt auch.
Wenn ich nun aber die Tabellenzeile füllen will und dazu auf das Objekt im Templateobjekt verweise, dann kommt es zum Fehler.
Aber laut Theorie sollte es doch genügen, per return das $this->objekte[...] an eine Variable im eigentlichen Seitenscript zu übergeben.
Also, dass ich quasi das Objekt der Tabellenzeile durch die eigentliche Template-Class durch direkt anspreche.
Ich bin irgendwie ratlos. Vllt. findet ihr ja einen Fehler in meiner theoretischen Lösung. Ansonsten poste ich heut nachmittag mal mein ganzes Templatesystem. So lang ist das nit.