2010-12-28 6 views
0

Ich habe online nach einem Tutorial gesucht, um eine Template Engine zu erstellen. Ich weiß, dass es viele Engines gibt, wie Smarty, Zweig und Muster, die genau das tun können, was ich will, aber ich möchte lernen, wie man einen baut. Ich habe mit einer Template-Engine begonnen, die Strings zu einem Array hinzugefügt und dann das Array angezeigt hat. Seitdem habe ich einen mit eval() gebaut (siehe unten).PHP Template Engine

Es funktioniert ziemlich gut, aber es ist nicht was ich suche zu erreichen. Ich möchte etwas wie die Joomla-Vorlage mit Tags wie <jdoc:include type="component" /> erstellen. Ich möchte auch, dass es in der Lage ist, Fehler inline zu behandeln, was bedeutet, dass es die Zeilennummer eines Fehlers anzeigen wird, oder wenn ich echo "text" aufrufen, zeigt es Text an der richtigen Position innerhalb der Vorlage an.

Wie erstelle ich etwas in diese Richtung?

Antwort

1

http://www.phptal.org/ klingt sehr ähnlich und hat eine gute Code-Organisation. Wenn Erweiterung des genannten Systems nicht den Bedürfnissen entspricht, würde es mindestens so gut Tutorial

0

Zunächst einmal: Sofort vergessen Sie die Idee über die Verwendung eines TE mit XML-ähnlichen Tags. Wirklich, es sieht auf den ersten Blick gut aus, verursacht am Ende aber nur zu viel Arbeit und ist wirklich limitierend.

Zweitens empfehle ich Ihnen natürlich, Twig zu verwenden. Es ist sauber, schnell, erweiterbar und bietet alle Funktionen, die Sie benötigen.

Und zuletzt: Ich habe ein kleines Tutorial geschrieben, wie man eine einfache aber leistungsfähige TE in another Stackoverflow question schreibt. Es ist wirklich einfach, aber für kleinere Projekte kann es ausreichen.

0

Ich kann nicht mit NikiC Sichtweise übereinstimmen. XML ist, obwohl eine alte Syntax, sehr mächtig und bringt viele Vorteile mit sich - eine davon ist seine Ähnlichkeit mit korrekt geschriebenem HTML.

Es gibt keine Einschränkungen bei der Verwendung einer XML-basierten Vorlagensyntax.

Abgesehen davon, obwohl Twig in der Tat ein ausgezeichnetes und berühmtes Projekt ist, fehlt es noch an einem wirklich guten Trennungs-Paradigma. Es ist immer noch zu gefährlich und zu leicht, Fehler innerhalb der Vorlage zu machen und Schäden an der Anwendung als Ganzes zu verursachen.

Schließlich ist die beste Template-Engine - genau wie das beste MVC-Framework - diejenige, mit der Sie sich wirklich wohl fühlen. Ich empfehle FigDice] 1, die von PHPTal inspiriert wurde, aber geht ein paar Schritte weiter, mit einem exklusiven Ansatz, indem der Web Designer (Integrator, HTML-ist, etc.) eine zentrale Position mit dem Projekt - Viel flexibler als der Zweig-ähnliche Ansatz.

Ich würde mich freuen, ein Feedback zu lesen. Danke

Verwandte Themen