If-Anweisungen im template-system
Wie kann ich analysieren, lassen Sie uns sagen, {if $var > 2}
oder {if $var}
in einem .tpl-Datei in meine eigene version einer Template-Klasse. Ich nicht verwenden möchte, smarty, da ich nicht alle plugins. Ich will einfach nur zählen, wenn, und für foreach
Aussagen.
Es sei denn, dies ist für Lern-Zwecke (was ich bezweifle, weil Sie möchten, dass der code), ich würde Smarty verwenden (entfernen Sie die plugins, wenn Sie diese nicht benötigen) oder PHP. Keine Notwendigkeit, neu zu erfinden, ein Rad, das erfunden wurde tausend mal schon
Wenn Sie nicht möchten, zu verwenden, Smarty, das nicht ausschließt, dass es als Referenz für die Umsetzung details. Sie werden mithilfe von regulären Ausdrücken zum transformieren der Vorlage pseudo-code zu php.
ich mache dies für ausbildungszwecke zu finden, aber es ist ganz schwer zu bekommen, meinen Kopf um ihn herum. Anstatt also mit smarty ich möchte mein eigenes Template-system, so habe ich ein besseres Verständnis, wie das templating funktioniert.
Sobald Sie beginnen, Sie gehen diesen Weg, Ihre templating-Sprache wird eine Programmiersprache. Es ist nichts falsch mit diesem (Template-Toolkit ist eine Sache der Schönheit), aber das schreiben eine Programmiersprache ist nicht etwas für schwache Nerven. Ich würde anfangen durch Lesen auf Interpret Theorie.
Ich denke, man sollte Smarty verwenden. Wenn Sie nicht, Ihre hand-made-Lösung (a) buggy und b) Art komplexer als nur mit Smarty, auch wenn Sie nicht Ihre plugins. Und, let ' s face it, wenn Sie nicht möchten, verwenden Sie Ihre plugins... dann müssen Sie nicht haben, um.
Wenn Sie nicht möchten, zu verwenden, Smarty, das nicht ausschließt, dass es als Referenz für die Umsetzung details. Sie werden mithilfe von regulären Ausdrücken zum transformieren der Vorlage pseudo-code zu php.
ich mache dies für ausbildungszwecke zu finden, aber es ist ganz schwer zu bekommen, meinen Kopf um ihn herum. Anstatt also mit smarty ich möchte mein eigenes Template-system, so habe ich ein besseres Verständnis, wie das templating funktioniert.
Sobald Sie beginnen, Sie gehen diesen Weg, Ihre templating-Sprache wird eine Programmiersprache. Es ist nichts falsch mit diesem (Template-Toolkit ist eine Sache der Schönheit), aber das schreiben eine Programmiersprache ist nicht etwas für schwache Nerven. Ich würde anfangen durch Lesen auf Interpret Theorie.
Ich denke, man sollte Smarty verwenden. Wenn Sie nicht, Ihre hand-made-Lösung (a) buggy und b) Art komplexer als nur mit Smarty, auch wenn Sie nicht Ihre plugins. Und, let ' s face it, wenn Sie nicht möchten, verwenden Sie Ihre plugins... dann müssen Sie nicht haben, um.
InformationsquelleAutor Speedy Wap | 2011-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bitte verwenden php.
Nur in deiner tpl-Datei:
Es ist viel einfacher, weniger code und viel schneller als das Parsen der Datei in php
InformationsquelleAutor AntonioCS
verwenden
Unterschied zwischen if () { } und if () : endif;
InformationsquelleAutor Gaurav
Du schon die Antwort auf Ihre Letzte Frage: if-Anweisungen in php-Vorlagen mit tpl
Aber da Sie nicht Weg gehen, ansonsten lasst mich schnell beantworten, und dann erwähnen das der bestimmten nächsten Stolpersteine.
Mit einem regulären Ausdruck wie diese Reise über eine verschachtelte
if
. Aber Sie hat nicht danach Fragen, also ich wird nicht Erwähnung es. Und wie in dem Kommentar, auf den Sie würde wirklich brauchen, um Kette zu einer zentralen Funktion, die weitere Ersetzungen ({foreach}
/{include}
/etc.) statt nurreturn $content
wie hier.Dies ist machbar, aber schnell wachsende umständlich. Und dies ist der Grund, warum alle anderen Template-engines (die Sie ablehnen, check-out) tatsächlich konvertieren
.tpl
Dateien in.php
scripts. Das ist viel einfacher, weil PHP bereits handhaben alle diejenigen, die Kontrollstrukturen, die Sie versuchen zu imitieren, mit Ihre eigenen Template-Klasse.Mit regulären Ausdrücken. Umwandeln jedes
{if ...}
in<?php if(...): ?>
und jede{/if}
in<?php endif; ?>
zum Beispiel.etwas code könnte hilfreich sein für die ganze Gemeinde
Ja, es wäre wahrscheinlich. Hencewhy viele Lösungen sind bereits dicoverable mit der Suche-Funktion. stackoverflow.com/questions/3930053/...
InformationsquelleAutor mario
Tatsächlich es ist ziemlich einfach, es sei denn, Sie brauchen verschachtelte wenn-Bedingungen.
InformationsquelleAutor Alex
Können Sie verwenden Sie das folgende format in der Vorlage-Datei(.tpl).,
InformationsquelleAutor Rajesh
Es ist ein php-code-Beispiel, analysiert folgende temaplate (php 5.3+):
Code:
InformationsquelleAutor MaxWell99