Klaus: Template per Include laden & global Vars

Beitrag lesen

Hallo,
also mir ist eine Idee gekommen, wie man ein recht schnelle Template System schreiben könnte.

Wenn man das Template aufruft, wird überprüft ob es bereits eine Version davon im Cache-Ordner vorhanden ist.
Diese Version wird dann per include(); geladen und somit ausgegeben.

Falls diese Datei noch nicht vorhanden ist, wird das "Roh-Template" geladen, dort werden erst einmal die Design Platzhalter, sowie sonstige Platzhalter, ersetzen und die IF-Tags werden durch PHP-IF-Anweisungen ersetzt.

Das wird dann im Cache-Ordner gespeichert.

Der Vorteil daran wäre, dass falls die Datei im Cache vorhanden ist, dass die ganzen Platzhalter nicht überprüft und ersetzt werden müssen.

Denn hat man z.B. 10 Templates und 30 Platzhalter, so wären es 300 Ersetzungen-Durchläufe pro Seitenaufruf.

Danach müssten wieder die IF-Anweisungen gefunden, gesplittet und überprüft werden. Das würde im Cache alles entfallen, denn die Platzhalter haben ihren Wert bereits erhalten (falls sich dieser ändert, wird der Cache geleert) und die IF-Anweisungen würden dort als PHP-Tag (<?php if(...) ?>) stehen und müssten vorher nicht aufwendig gefunden und ersetzt werden.

Ein Problem gibt es jetzt bei den Variablen. Teileweise muss der User   die PHP-Varibalen ($variable) im Template speichern, z.B. eine Variable welche den Namen des Mitgliedes ausgibt.

Bisher wurden diese immer per eval(); durch den Wert ersetzt, da aber das Include innerhalb einer Funktion einer Klasse ist, müsste ich:
-Alle Variablen als global deklarieren, geht dies?
-Die $variable durch $GLOBALS['variable'] im Cache speichern lassen.

Gibt es Probleme bei $GLOBALS['variable'], oder andere Bedenken?

Die Variablen im Template sollen nur ausgegeben werden, aber nicht verändert werden, sofern der User das nicht selber vornimmt.

Grüße
Klaus