PHP模板原理

2021-07-04 22:08:31 字數 2287 閱讀 8028

原始出處 、作者資訊和本宣告。否則將追究法律責任。

開發乙個

web專案,通常分為兩部分,一部分是

gui,即介面、美工,使用

html,css,js

編寫,另一部分則是業務邏輯,即程式、功能,使用

php編寫。而模板引擎則是聯絡這兩部分的「橋梁」,可理解成乙個

php類,裡面定義了許多方法,實現了將

php的原始輸出載入上介面樣式後再輸出。

沒用模板之前的編寫的**是這樣的:

<?php

$title = 「標題

」;$content = 「內容

」;?>

<?php  echo $content; ?>

這樣的話美工與邏輯沒有分離,簡單的說就是

php程式設計師不僅要寫程式還要精通美工,這往往十分困難,因此需要將這兩部分工作分開。

在此通過自己建立乙個簡單的模板引擎為例子,更好的體會模板引擎的原理。

之前說了開發乙個

web專案分成

gui與業務邏輯兩部分,因此我們建立兩個資料夾,乙個命名為「

templates

」,裡邊存放模板,新建乙個

tpl.html

檔案,另乙個命名為「

php」,裡邊存放業務邏輯,新建乙個

index.php

檔案。

tpl.html

檔案**通常是這樣:

<>

可以看出來,和之前的**相比,

tpl.html

中只有html

**,沒有

php**,但是增加了新的標籤,這類標籤是自己定義的,裡面的內容只有經過模板引擎編譯後才能被識別,編譯後的檔案存放在「

templates_c

」資料夾下。這個檔案主要是介面設計用的,將大量使用到

css,

js等技術。

這時候tpl.html

和index.php

仍舊是分離的,互不干擾,因此需要乙個「橋梁」連線,即模板引擎,其實就是乙個

php類,故在此可以建立乙個

mytpl.class.php

的php

檔案。

mytpl.class.php

檔案通常定義乙個類

mytpl

,類中需定義乙個陣列

tpl_var

用於存放

tpl.html

中自定義內容標籤的引數,此外還需定義一些方法,這些方法最主要的目的是將

tpl.hml

中無法識別的的內容標籤轉換成

php語句,然後再寫到乙個「

templates_c

」資料夾下的

tpl_c.html

中,這個過程就是所謂的編譯。

通常tpl_c.html

檔案的**是這樣的:

<?php  echo $this->tpl_var[

「content

」]; ?}>

可以看出上面的**是可以被識別的,因為自定義的內容標籤已經被替換成

php語句了,但是

title

和content

的值是多少我們還不得而知,這時候之前建立的

index.php

要上場了,通常它**是這樣的:

include  

「tpl.class.php檔案」

;//載入模板引擎

$tpl = new mytpl();

//例項化乙個模板類

$title = 「標題

」;$content = 「內容

」;$tpl->assign(

「title

」,$title);

//呼叫模板類中的方法,分配變數

$tpl->assign(

「content

」,$content);

$tpl->display(

「tpl.html」);

//呼叫模板類中的方法,用於顯示編譯後的內容 

上面的**只是一些簡單的描述**,其中的變數的值可以是直接定義的也可以是從資料庫中獲取的,此外該檔案還可以編寫一些複雜的

php程式,這也就是之前說的業務邏輯。

最後用一幅圖概括:

這樣gui

和業務邏輯的工作就分離了,美工設計人員只需要編寫模板檔案就可以改變

web的介面,而

php程式設計師則可以專心編寫自己的程式。

php模板原理

最近在開發的時候,遇到了在有html模板的情況下,每天生成資料包表的需求,如果用框架太重了,就想自己簡單的模板來實現,這樣簡單實用,順便記錄下原理。一.模板引擎原理 php是網頁內嵌型的語言,利用 php 標籤嵌入到html文字中,然後由php的直譯器去執行,動態生成頁面。但是對於大型的web應用,...

php模板引擎原理

訪問php檔案,php檔案會去載入模板引擎,通過模板引擎去載入模板然後替換模板裡面的變數 然後生成乙個編譯檔案 最後將該編譯檔案匯入 訪問的php檔案中輸出 第二次訪問的時候 如果 快取檔案存在或者沒有被改動則直接 匯入快取檔案 輸出 否則重新編譯 自定義的乙個模板引擎 mytpl.class.ph...

PHP 關於模板的原理和解析

將php 和靜態html 進行分離,使 的可讀性和維護性得到顯著提高。使用模板引擎 我們所說的模板是web模板,是主要由html標記組成的語言來編寫的頁面,但也有如何表示包含動態生成內容的方式 解析標籤 模板引擎是一種軟體庫,允許我們從模板生成html 並指定要包含的動態內容。模板引擎的特點 1.鼓...