Stehen Sie vor der Aufgabe, eine Website zu erstellen, die sowohl von einem Programmierer (wahrscheinlich Ihnen) als auch von einem Designer erstellt wurde? Wissen Sie nicht, wie Sie die Arbeit für Sie beide einfacher machen können? Lassen Sie mich Ihnen die Antwort geben: Verwenden Sie FastTemplate, um die Anpassung Ihrer Website zu vereinfachen!
Okay, Sie fragen sich vielleicht, warum Sie FastTemplates verwenden sollten.
· Kann das Erscheinungsbild Ihrer gesamten Website in Sekundenschnelle ändern · Abstrakte Programmierung, kein Junk-HTML-Code · Designer müssen sich nicht um den ganzen „obskuren“ Code kümmern · Überraschend schnell · Einfachere Wiederverwendung alter Vorlagen (im Vergleich zu normaler Form)
FastTemplate ist von einem gleichnamigen Perl-Paket abgeleitet (das auf CPAN zu finden ist). Sie können die PHP-Version von der Homepage herunterladen (die Download-Adresse dieser Website lautet: http://www.phpe.net/downloads/1.shtml). Sie benötigen nur eine der Klassendateien (class.FastTemplate.php).
Lassen Sie mich zunächst den Unterschied zwischen der Verwendung einer Vorlage zum Generieren einer Seite und dem einfachen Echo oder Ausdrucken einer Seite erläutern.
Die einfache Verwendung der Echo/Print-Methode eignet sich hervorragend zum Schreiben kurzer Skripte, hilft Ihnen jedoch nicht bei der besseren Organisation und Anpassung. Mit Vorlagen hingegen haben Sie die Möglichkeit, mehrsprachige Websites zu erstellen, indem Sie einfach einen Parameter ändern. Sie können Sie dazu bringen, sich mehr um das zu kümmern, was Sie tun müssen.
Haben Sie keine Angst, nachzudenken, bevor Sie mit dem Codieren beginnen. Es kann einige Zeit dauern, aber die Kosten werden sich auszahlen, wenn das Projekt wächst.
Wie wendet man FastTemplate an? Zuerst müssen Sie einen einfachen Aufruf tätigen:
<?php $tpl=new FastTemplate ("path");
?>
Übergeben Sie einen Pfad zu dem Verzeichnis, in dem alle Ihre Vorlagendateien gespeichert sind. Es gibt ein Objekt zurück, das Sie zur Parametrierung, Seitengenerierung usw. verwenden können.
FastTemplate basiert auf der Annahme, dass eine große Seite aus vielen kleinen Teilen besteht. Jeder Teil hat einen eindeutigen Namen. Der kleinste Teil besteht darin, es einer normalen Textzeichenfolge mit einem eindeutigen Namen zuzuweisen. Dies kann über <?php erfolgen
$tpl->assign(NAME, „text“);
?>
zu vervollständigen. Wenn nun eine Ihrer Vorlagen {NAME} enthält, kennt FastTemplate Ihre Absicht.
Darüber hinaus muss FastTemplate wissen, wie Sie Ihre Vorlage aufrufen möchten. Sie müssen ein assoziatives Array (assoziativ) übergeben
array) zu <?php $tpl->define(?);
Kommen Sie und geben Sie ihm einen Hinweis.
<?php
$tpl->define(array(foo => "foo.tpl",
bar => "bar.tpl"));
?>
Diese Zuweisungen ergeben foo und bar jeweils unterschiedliche Dateien (mit den Namen foo.tpl und bar.tpl).
Jetzt möchten Sie, dass FastTemplate alle {MACROS} in der Vorlage foo durch die entsprechenden Werte ersetzt. Durch Ausgabe des Befehls
<?php
$tpl->parse(PAGECONTENT, "foo");
?>
zu erreichen. Dieser Befehl weist den Inhalt der Vorlage „foo“ PAGECONTENT zu. Natürlich sind wir noch nicht fertig, denn die Vorlagenleiste ist die Hauptseitendefinition und FastTemplate muss sie ersetzen.
{PAGECONTENT}-Makro. Wir müssen PAGETITLE auch einen Wert zuweisen, wie folgt: <?php
$tpl->assign(PAGETITLE, "FooBar test");
$tpl->parse(MAIN, "bar");
?>
Einfach, nicht wahr? Wir müssen es jetzt nur noch ausgeben: <?php
$tpl->FastPrint(MAIN);
?>
Die folgenden drei Dateien zeigen detailliertere Beschreibungen der tatsächlichen Übungen. Ich weiß nicht, wie ich im wirklichen Leben ohne diese Technologie leben soll--
Ihre Designer werden zufrieden sein und Ihr Chef wird lächeln, weil Sie in kürzerer Zeit mehr erledigen können.
bar.tpl <!-- bar.tpl -->
<HTML>
<HEAD><TITLE>Feature-Welt – {PAGETITLE}</TITLE></HEAD>
<BODY BGCOLOR=BLACK TEXT=WHITE>
<H1>{PAGETITLE}</H1>
{PAGECONTENT}
</BODY>
</HTML>
foo.tpl <!-- foo.tpl -->
Offensichtlich wurde nichts getan. Bitte sehen Sie sich {NAME} an.
demo.php3 <?php
include "class.FastTemplate.php3";
$tpl = new FastTemplate( ".");
$tpl->define(array(foo => "foo.tpl", bar => "bar.tpl"));
$tpl->assign(NAME, "me");
$tpl->assign(PAGETITLE, "Willkommen!");
$tpl->parse(PAGECONTENT, "foo");
$tpl->parse(MAIN, "bar");
$tpl->FastPrint(MAIN);
?>
Eine ganze Tabelle erstellen Ich habe auch ein kurzes Beispiel geschrieben, um zu zeigen, wie man eine ganze Tabelle aus einer einzeiligen Vorlage generiert. Dies ist effizient, da Sie das HTML-Dokument trotzdem nicht direkt ändern müssen.
Wir erstellen eine HTML-Tabelle, indem wir den Inhalt einer Vorlage an einen bereits definierten eindeutigen Namen anhängen. Dies kann durch einen Anruf erfolgen
Fügen Sie bei $tpl->parse() ein „.“ vor dem Vorlagennamen hinzu, um dies zu erreichen. <?php
//Weisen Sie den Inhalt der Vorlage foo zu TPL1 zu
$tpl->parse(TPL1, "foo");
// Den Inhalt der Vorlagenleiste nach TPL1 anhängen
$tpl->parse(TPL1, ".bar");
?>
page.tpl
<HTML>
<HEAD><TITLE>Feature-Welt – {PAGE_TITLE}</TITLE></HEAD>
<BODY BGCOLOR=BLACK TEXT=WHITE>
<H1>{PAGE_TITLE}</H1>
{PAGE_CONTENT}
</BODY>
</HTML>
table.tpl
<TABLE>
<TR> <TH>Name</TH> <TH>Größe</TH> </TR>
{TABLE_ROWS}
</TABLE>
table_row.tpl
<TR>
<TD>{DATEINAME}</TD>
<TD>{FILESIZE}</TD>
</TR>
yad.php3
<?php
include „class.FastTemplate.php3“;
function InitializeTemplates() {
global $tpl;
$tpl = new FastTemplate( ".");
$tpl->define( array( page => "page.tpl",
table => "table.tpl",
table_row => "table_row.tpl" ) );
}
Funktion ReadCurrentDirectory() {
global $tpl;
$handle = opendir( ".");
while($filename = readdir($handle)) {
$tpl->assign(FILENAME, $filename);
$tpl->assign(FILESIZE, filesize($filename));
$tpl->parse(TABLE_ROWS, ".table_row");
}
geschlossenir($handle);
$tpl->parse(PAGE_CONTENT, "table");
}
Funktion PrintPage($title) {
global $tpl;
$tpl->assign(PAGE_TITLE, $title);
$tpl->parse(FINAL, "page");
$tpl->FastPrint(FINAL);
}
InitializeTemplates();
ReadCurrentDirectory();
Printpage( "Noch eine Demo");
?>
Geschwindigkeitsdiskussion
„Ok“, Sie sagen vielleicht: „Das ist alles großartig. Aber wird es nicht die Geschwindigkeit meiner Website beeinträchtigen?“
Nein, Ihre Website wird wahrscheinlich schneller. Ein einfacher Grund: Da Ihnen als Programmierer das Entwerfen Ihrer Anwendung und das Schreiben von Code am Herzen liegt, wird Ihr Code effizienter sein und die gleichen Aufgaben einfacher und schneller erledigen. Daher können Sie der oben aufgeführten Liste einen weiteren Grund hinzufügen, warum Sie die Verwendung von FastTemplate in Ihrem Projekt in Betracht ziehen sollten.
Wenn Sie lediglich eine bestehende Website konvertieren möchten, ist der Performance-Erfolg möglicherweise nicht spürbar. Ich empfehle die Verwendung der Regex-Pufferung in PHP, sie wird in dieser Situation hilfreich sein. Da FastTemplate für jedes Makro reguläre Ausdrücke verwendet, wird jeder reguläre Ausdruck nur einmal kompiliert und die Auswirkungen auf die Geschwindigkeit sind vernachlässigbar.