Heim  >  Artikel  >  Backend-Entwicklung  >  Manuelle Entwicklung der PHP-Template-Engine 1 (35)

Manuelle Entwicklung der PHP-Template-Engine 1 (35)

WBOY
WBOYOriginal
2016-08-08 09:23:37900Durchsuche

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.

Flussdiagramm für 3 TPL-Vorlagen

Wenn wir unsere eigene Vorlagen-Engine erstellen, liegt der größte Vorteil in der Einfachheit. Da von vielen Teams geschriebene Template-Engines über viele leistungsstarke Funktionen verfügen, sind sie auch sehr sicher. Der Nachteil ist jedoch, dass wir nicht viele davon verwenden und die Größe sehr

sehr aufgebläht ist.

 

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.

2. Index.php-Dateicode im Stammverzeichnis der Website

<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.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn