Ich werde die gleiche Frage von euch darum bitten, dass ich von jemand darauf hindeutet, Smarty fragen würde:
Warum Sie eine Template-Sprache hinzufügen wollen zu PHP, das ist eine Vorlagensprache?
PHP ist eine Vorlagensprache. Ich denke, die Leute vergessen das oder versuchen es wie eine reine OO-Sprache zu behandeln, which it isn't. Spielen Sie mit den Stärken von PHP. Versuche nicht, es zu etwas zu machen, was es nicht ist.
Das alles gesagt, es ist schwer, Ihre Frage zu beantworten, weil Sie nicht sagen, wie einfach oder komplex Ihr Vorlagensystem ist, nämlich welche Funktionen Sie unterstützen möchten.
Wenn Ihre Vorlagensprache relativ einfach ist, dann können reguläre Ausdrücke die richtige Wahl sein. Das wird jedoch für einige triviale Fälle nicht funktionieren. Das Verschachteln von Kontrollstrukturen ist wahrscheinlich am häufigsten. In diesem Fall müssen Sie einen rudimentären Parser schreiben.
Lassen Sie uns sagen, dass alle Ihre Template-Strukturen in den Blöcken wie diese sind:
{:...:}
denn das ist relativ unwahrscheinlich, sonst in einer HTML-Seite kommen (obwohl für die Vollständigkeit, die Sie für den Fall gerecht zu werden brauchen wo der Benutzer tatsächlich diese Zeichenkombinationen verwenden möchte
Sie müssen Ihre Datei nach solchen Ausdrücken durchsuchen und entsprechend verarbeiten.Reguläre Ausdrücke können verwendet werden, um sie alle zu finden, aber nicht unbedingt übereinstimmende, wie für bedingte Includes, z :
{:if ...:}
Some conditional content
{:endif:}
Warum? Aus diesem Grund:
{:if *some condition*:}
{:if *some other condition*:}
Some other conditional content
{:endif:}
Some conditional content
{:endif:}
Passende dass mit regulären Ausdrücken nicht zuverlässig durchgeführt werden können, so müssen Sie Ihre Datei in irgendeiner Form von Baum von Lexemen analysieren und verarbeiten sie dann.
Am wichtigsten, wenn Sie auf PHP phs analysieren, achten Sie darauf, es nur einmal zu tun. – rick
Wenn Sie Ihr Framework als MVC entwerfen, dann verwenden Sie nur ein oder mehrere Kernlayouts, eine Ansicht und einen Haufen Helfer. Sehr einfach. –