Heim > Artikel > Backend-Entwicklung > Manuelle Entwicklung der PHP-Template-Engine 1 (35)
Die Vorlage heißt TPL und ist der Smarty-Vorlagen-Engine nachempfunden.
Was wir Vorlagen nennen, sind Webvorlagen, das sind Seiten, die in einer Sprache geschrieben sind, die hauptsächlich aus HTML-Markup besteht, aber auch Möglichkeiten zur Darstellung dynamisch generierter Inhalte (Parsing-Tags) bietet. Eine Template-Engine ist eine Softwarebibliothek, die es uns ermöglicht,
HTML-Code aus Vorlagen zu generieren und dynamische Inhalte anzugeben, die einbezogen werden sollen.
1 Funktionen der Template-Engine:
1. Förderung der Trennung: Verbessern Sie die Lesbarkeit und Wartbarkeit des gesamten Systems.
2. Arbeitsteilung fördern: Ermöglichen Sie Programmierern und Künstlern, sich auf ihre eigenen Designs zu konzentrieren.
3. Einfacher zu analysieren als PHP: Kompilierte Dateien und Cache-Dateien werden schneller geladen und belegen weniger Ressourcen.
4. Erhöhen Sie die Sicherheit: Es kann die Fähigkeit von Vorlagendesignern einschränken, unsichere Vorgänge auszuführen, um versehentliches Löschen und versehentlichen Zugriff zu verhindern.
2 Template-Engine-Produkte:
PHP verfügt über viele Template-Engines, die speziell von Teams entwickelt wurden, wie Smarty, Heyes Templates Class,
FastTemplate usw. Wenn wir diese Template-Engines direkt verwenden, können wir viele der oben genannten
Funktionen vollständig realisieren. Aber für Anfänger kann das Verständnis der Prinzipien von Template-Engines zu einem tieferen Verständnis dafür führen, warum Vorlagen verwendet werden sollten.
4. TPL-Vorlagen-Engine erstellen
1. Erstellen Sie die Ordner und Dateien, die für die anfängliche Vorlage erforderlich sind a) index.php-Hauptdatei, die zum Schreiben der Geschäftslogik verwendet wird.b) template.inc.php-Vorlageninitialisierungsdatei, die für anfängliche Vorlageninformationen verwendet wird.
c) Im Vorlagenverzeichnis werden alle Vorlagendateien gespeichert.
d) Das Verzeichnis templates_c speichert alle kompilierten Dateien.
e) Das Cache-Verzeichnis speichert alle Cache-Dateien.
f) Das Includes-Verzeichnis speichert alle Klassendateien.
g) Im Konfigurationsverzeichnis werden Konfigurationsdateien für Vorlagensystemvariablen gespeichert.
<span>//</span><span>设置编码为utf-8</span>header(<span>'</span><span>Content-Type:text/html;charset=utf-8</span><span>'</span><span>); </span><span>//</span><span>网站根目录</span>define(<span>'</span><span>ROOT_PATH</span><span>'</span><span>,dirname(__FILE__)); </span><span>//</span><span>存放模板文件夹</span>define(<span>'</span><span>TPL_DIR</span><span>'</span>,ROOT_PATH.<span>'</span><span>/templates/</span><span>'</span><span>); </span><span>//</span><span>编译文件夹</span>define(<span>'</span><span>TPL_C_DIR</span><span>'</span>,ROOT_PATH.<span>'</span><span>/templates_c/</span><span>'</span><span>); </span><span>//</span><span>缓存文件夹</span>define(<span>'</span><span>CACHE_DIR</span><span>'</span>,ROOT_PATH.<span>'</span><span>/cache/</span><span>'</span>);3 Templates.class.php im Includes-Ordner – hinzugefügt, um festzustellen, ob Das Verzeichnis existiert Methode
<span>//</span><span>创建一个构造方法</span><span>public</span><span> function __construct() { </span><span>//</span><span>验证一下目录是否存在</span><span>if</span> (!is_dir(TPL_DIR) || !is_dir(TPL_C_DIR) || !<span>is_dir(CACHE_DIR)) { exit(</span><span>'</span><span>ERROR:模板文件夹或者编译文件夹或者缓存文件夹没有创建!</span><span>'</span><span>); } }</span>4 Templates.class.php im Includes-Ordner – Erstellen Sie eine display()-Methode zum Laden der .tpl-Vorlagendatei Dies ist auch in samrty Die Display-Prototyp-Methode
<span>//</span><span>将模板导入到php文件中</span><span>public</span><span> function display($_file) { </span><span>//</span><span>设置模板文件的路径</span> $_tplFile =<span> TPL_DIR.$_file; </span><span>//</span><span>判断模板文件是否存在</span><span>if</span> (!<span>file_exists($_tplFile)) { exit(</span><span>'</span><span>ERROR:模板文件不存在!</span><span>'</span><span>); } </span><span>//</span><span>设置编译文件的文件名</span> $_parFile = TPL_C_DIR.md5($_file).$_file.<span>'</span><span>.php</span><span>'</span><span>; </span><span>//</span><span>判断编译文件是否存在,模板文件是否修改过</span><span>if</span> (!file_exists($_parFile) || filemtime($_parFile) <<span> filemtime($_tplFile)) { </span><span>//</span><span>生成编译文件</span><span> file_put_contents($_parFile,file_get_contents($_tplFile)); } </span><span>//</span><span>载入编译文件</span><span> include $_parFile; } </span><span>//</span><span>引入模板类</span>require ROOT_PATH.<span>'</span><span>/includes/Template.class.php</span><span>'</span><span>; </span><span>//</span><span>实例化模板类</span>$_tpl = <span>new</span><span> Template(); </span><span>//</span><span>载入index.tpl</span>$_tpl->display(<span>'</span><span>index.tpl);</span>Fortsetzung folgt
Das Obige stellt die manuelle Entwicklung der PHP-Template-Engine 1 (35) vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.