Die Entwicklung eines Webprojekts gliedert sich normalerweise in zwei Teile: Die GUI, also die Benutzeroberfläche und die Grafik, wird mit HTML, CSS und JS geschrieben, und der andere Teil besteht aus der Geschäftslogik, also den Programmen und Funktionen, die mit PHP geschrieben werden . Die Template-Engine ist die „Brücke“, die die beiden Teile verbindet. Sie kann als PHP-Klasse verstanden werden, die viele Methoden definiert, um die ursprüngliche Ausgabe von PHP in den Schnittstellenstil zu laden und dann auszugeben.
<?php $title = “标题”; $content = “内容”; ?> <html> <head><title><?php echo $title; ?></title></head> <body><?php echo $content; ?></body> </html>
Auf diese Weise sind Kunst und Logik nicht getrennt. PHP-Programmierer müssen nicht nur Programme schreiben, sondern auch Kunst beherrschen Dies muss kombiniert werden. Die beiden Teile funktionieren separat.
Lassen Sie uns als Beispiel selbst eine einfache Template-Engine erstellen, um die Prinzipien von Template-Engines besser zu verstehen.
Wie bereits erwähnt, ist die Entwicklung eines Webprojekts in zwei Teile unterteilt: GUI und Geschäftslogik. Daher erstellen wir zwei Ordner, einen mit dem Namen „templates“, um Vorlagen zu speichern, eine neue tpl.html-Datei zu erstellen und den anderen mit dem Namen „PHP“. " , das die Geschäftslogik speichert und eine neue index.php-Datei erstellt. Der Code der Datei
tpl.html sieht normalerweise so aus:
<html> <head><title><{$title}></title></head> <body><{ $content;}></body> </html>
Es ist ersichtlich, dass tpl.html im Vergleich zum vorherigen Code nur HTML-Code und keinen PHP-Code enthält, aber neue Tags hinzugefügt wurden. definiert, kann der darin enthaltene Inhalt erst erkannt werden, nachdem er von der Template-Engine kompiliert wurde, und die kompilierten Dateien werden im Ordner „templates_c“ gespeichert. Diese Datei wird hauptsächlich für das Interface-Design verwendet und verwendet eine große Anzahl von CSS, JS und anderen Technologien.
Zu diesem Zeitpunkt sind tpl.html und index.php noch getrennt und stören sich nicht gegenseitig. Sie benötigen daher eine „Brücken“-Verbindung, dh die Template-Engine, die eigentlich eine PHP-Klasse ist, damit Sie dies tun können Erstellen Sie hier eine mytpl.class.php PHP-Dateien.
Die Datei mytpl.class.php definiert normalerweise eine Klasse MyTpl. In der Klasse muss ein Array tpl_var[] definiert werden, um die Parameter der benutzerdefinierten Inhalts-Tags in tpl.html zu speichern Der Hauptzweck dieser Methoden besteht darin, die nicht erkannten Inhalts-Tags in tpl.hml in PHP-Anweisungen umzuwandeln und sie dann in den Ordner „templates_c“ zu schreiben.
<html> <head><title><?php echo $this->tpl_var[“title”]; ?></head> <body><?php echo $this->tpl_var[“content”]; ?}></body> </html>
Sie können sehen, dass der obige Code erkannt werden kann, da die benutzerdefinierten Inhalts-Tags durch PHP-Anweisungen ersetzt wurden, aber was sind die Werte? von Titel und Inhalt Wir wissen immer noch nicht, dass die zuvor erstellte index.php zu diesem Zeitpunkt ins Spiel kommt
include “tpl.class.php文件”;//加载模板引擎 $tpl = new MyTpl();//实例化一个模板类 $title = “标题”; $content = “内容”; $tpl->assign(“title”,$title);//调用模板类中的方法,分配变量 $tpl->assign(“content”,$content); $tpl->display(“tpl.html”);//调用模板类中的方法,用于显示编译后的内容
Der obige Code ist nur ein einfacher Beschreibungscode , und die Werte der Variablen können direkt definiert oder aus der Datenbank abgerufen werden. Darüber hinaus kann diese Datei auch zum Schreiben einiger komplexer PHP-Programme verwendet werden, was der zuvor erwähnten Geschäftslogik entspricht.
Auf diese Weise wird die Arbeit von GUI und Geschäftslogik getrennt. Kunstdesigner müssen nur Vorlagendateien schreiben, um die Weboberfläche zu ändern, während PHP-Programmierer sich auf das Schreiben ihrer eigenen Programme konzentrieren können.
Unternehmen verfügen im Allgemeinen über eigene Template-Engines, und es besteht normalerweise keine Notwendigkeit, die Template-Engine selbst zu schreiben, da es bereits einige sehr ausgereifte Template-Engines auf dem Markt gibt, wie z. B. Smarty. Wir müssen nur wissen, wie man sie verwendet.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonEin Artikel, der die Prinzipien der PHP-Template-Engine detailliert beschreibt (mit Codebeispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!