Hello Inno,
ich glaube, dass Du auf dem Holzweg bist.
Du versuchst, den PHP-Parser mittels des PHP-Parsers durch einen selbstentwickelten PHP-Parser zu ersetzen. Das erinnert mich an meine frühen Assembler-Übungen am Commodore PET, wo wir immer versucht haben, die Konsole durch eine "Scherzkonsole" zu ersetzen...
Ein Template-System ist i.d.R. dafür da, dass man dem User einen gewissen Freiraum einräumen kann, ohne dass er die Kontrolle über das System übernehmen kann. Das erreicht man i.d.R. nur durch Anreihung eigentlich passiver Elemente (also z.B. HTML), die ergänzt werden durch systemkonforme Elemente des passiven Systems, die durch das Template-System dann benutzerbezogen ausgewertet und ersetzt werden können.
Beispiel:
<div id="div1">
<!--{ M-mainmenu ( $pageno )}-->
</div>
im HTML-Kontext erscheint ein Kommentar, der von derTemplateengine als Befehl erkannt wird, vom HTML-Parser aber ignoriert wird.
Hier soll ein Menu dargestellt werden und zwar passend zur angegebenen Seite.
Die Erscheinungsweise des Menu wird durch ein eigenes Template vereinbart.
Dieses kann wiederum Template-Befehle enthalten.
Solange Befehle gefunden werden, werden diese (rekursiv) aufgelöst.
Es kann aber niemand durch Einschleusen schädlichen Codes die Kontrolle über das System übernehmen.
An keiner Stelle wird der Code unkontrolliert in den Focus des PHP-Parsers gestellt.
Es findet also eine strikte Trennung statt
Das ist dann vergleichbar mit JavaScript im Browser. Auch bei JavaScript können die Randbedingungen sowie Kontrolle über Reessourcen nicht verändert werden, sondern nur die voreingetellten genutzt werden.
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
Ein Jammer ist auch, dass die Dummen so selbstsicher und die Klugen voller Zweifel sind. Das sollte uns häufiger zweifeln lassen :-)
