PHP模板引擎Prototype怎么配置-創(chuàng)新互聯(lián)

這篇文章主要為大家展示了“PHP模板引擎Prototype怎么配置”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“PHP模板引擎Prototype怎么配置”這篇文章吧。

成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比榮昌網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式榮昌網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋榮昌地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴。

1. 首先第一步是配置模板引擎的根目錄,如果不設(shè)置則會(huì)自動(dòng)生成根目錄的絕對(duì)路徑。

Template :: $rootPath = dirname(__FILE__); // 相對(duì)與絕對(duì)路徑均可,我們這里則采用絕對(duì)路徑!如:"C:/wwwroot/prototype"

2. 配置模板文件目錄,這個(gè)目錄是用來(lái)存放模板文件的,如果不設(shè)置則默認(rèn)為:templates 目錄。

// 這里則采用默認(rèn)目錄,大家根據(jù)自己的需求進(jìn)行設(shè)置,建議不要寫中文容易出錯(cuò),目錄名的前后加不加正反斜杠都無(wú)所謂,最終模板引擎內(nèi)部會(huì)自動(dòng)校正! Template :: $templateName = '/templates/';

3. 配置編譯文件目錄,這是用來(lái)存儲(chǔ)模板文件被解析后生成的編譯文件,如果不設(shè)置則默認(rèn)為:compiles 目錄。

Template :: $compileName = '/compiles/'; // 和模板目錄一樣也采用默認(rèn)目錄。

4. 配置緩存文件目錄,這是在模板引擎開(kāi)啟緩存功能后,用來(lái)存儲(chǔ)編譯文件生成的緩存文件,如果不設(shè)置默認(rèn)為:caches 目錄。

Template :: $cacheName = '/caches/'; // 一樣使用默認(rèn)

5. 配置模板常量目錄,可能大家不太理解模板常量是用來(lái)干嘛的,和普通的 PHP 常量又有什么區(qū)別?關(guān)于模板常量的解釋,在接下來(lái)的運(yùn)用中我們?cè)谠敿?xì)探討,這里就先跟我進(jìn)行配置即可,如果不設(shè)置則默認(rèn)為:constants 目錄。

Template :: $constantName = '/constants/'; // 使用默認(rèn)

6. 到第六步為止,目錄的配置就全部完成了,大家不用擔(dān)心目錄不存在的問(wèn)題,也無(wú)需手動(dòng)去創(chuàng)建,模板引擎內(nèi)部會(huì)自動(dòng)幫我們完成。那么接下來(lái)就是設(shè)置模板常量的文件名稱,如果不設(shè)置則默認(rèn)為:default.xml 文件,和目錄一樣不存在模板引擎會(huì)自動(dòng)創(chuàng)建。

// 我們也采用默認(rèn),但大家要注意的是這里必須采用 .xml 為擴(kuò)展名,因?yàn)槌A课募且?nbsp;XML 標(biāo)記描述的,如果不是 .xml 結(jié)尾,那么可能會(huì)導(dǎo)致模板引擎在處理常量時(shí)出現(xiàn)異常情況! Template :: $constantFile = 'default.xml';

7. 設(shè)置緩存開(kāi)關(guān),緩存默認(rèn)情況下是被關(guān)閉的,只有我們?nèi)ピO(shè)置他,才會(huì)開(kāi)啟。

// 大家注意,這里我寫的是一個(gè)布爾值,其實(shí)這里可以填寫任意值,最終都會(huì)被隱式轉(zhuǎn)換為布爾值,寫 0 或 1 都可以,我直接寫布爾值是為了方便大家的理解! Template :: $cacheSwitch = true;

8. 至此模板引擎的配置基本上就已經(jīng)全部完成了,還是很簡(jiǎn)單的?,F(xiàn)在我們只需要實(shí)例化出模板引擎對(duì)象,就可以真正的運(yùn)行模板引擎了。

$tpl = new Template(); // 實(shí)例化出模板引擎,從這一步開(kāi)始之前的所有配置全部生效,模板引擎實(shí)例化時(shí)不需要傳遞任何參數(shù)。

9. 在實(shí)例化出模板引擎對(duì)象以后,我們就可以開(kāi)始對(duì)其進(jìn)行操作,那么對(duì)誰(shuí)進(jìn)行操作呢?當(dāng)然是模板文件了,首先我們要先創(chuàng)建模板文件。在模板文件目錄中進(jìn)行創(chuàng)建。模板文件其實(shí)是純 HTML 代碼文件,擴(kuò)展名可以自定義,而我們約定俗成,都以 .tpl 為擴(kuò)展名。假設(shè)我們已經(jīng)創(chuàng)建了一個(gè)模板文件名為:index.tpl,因?yàn)楹臀覀兊?php 業(yè)務(wù)邏輯文件 index.php 同名,這也是按照慣例約定俗成,因?yàn)?index.php 文件調(diào)用 index.tpl 模板,見(jiàn)名知意。

10. 在創(chuàng)建了模板文件之后,我們就可以在業(yè)務(wù)文件(之前的配置也都是在 index.php 中執(zhí)行的)中進(jìn)行對(duì)模板文件的加載以及注入模板變量,關(guān)于模板變量和其他的模板標(biāo)識(shí)符(又統(tǒng)稱模板標(biāo)記)將在接下來(lái)的步驟中逐一講解。

// 注入變量的格式有兩種,大家注意看 API 手冊(cè)的說(shuō)明,數(shù)組格式與傳統(tǒng)的鍵值對(duì)格式均可以,我們兩種都使用一下。 $tpl -> assign('title', '頭銜'); // 首先是傳統(tǒng)鍵值對(duì)格式 $tpl -> assign(array('title' => '頭銜', 'name' => '名稱')); // 數(shù)組格式明顯要更加好用一些,因?yàn)樵谧⑷攵鄠€(gè)變量時(shí),就可以不用寫多個(gè)注入語(yǔ)句,一句話就搞定了。 // 如果出現(xiàn)了兩個(gè)一模一樣的變量名稱,那么其后會(huì)將之前的給替換掉。以下代碼,最終 language 變量的值為:英文。 $tpl -> assign(array('language' => '中文', 'language' => '英文'));// 接下來(lái)是加載模板文件,直接寫模板名稱即可,模板引擎會(huì)自動(dòng)鎖定到模板文件目錄。 $tpl -> display('index.tpl');

11. 至此對(duì)模板引擎的操作就結(jié)束了,接下來(lái)我們將熟悉一下模板文件中的各個(gè)模板標(biāo)記的使用方法,他們都是用來(lái)做什么的。在原型版中模板標(biāo)記一共有 9 種,分別為:1. 模板變量、2. 模板常量、3. 單行模板注釋、4. 多行模板注釋、5. include 文件加載、6. template 模板文件加載、7. source 源模板文件加載(較為特殊)、8. if 分歧語(yǔ)句、9. foreach 循環(huán)語(yǔ)句。那么我們首先解釋一下模板變量吧。

<div id="main">     <!-- 剛剛我們注入了 title 變量,那么在模板文件中就可以對(duì)其進(jìn)行調(diào)用了,調(diào)用方法就是保持同名,按照這樣的格式抒寫即可{$模板變量名稱}-->     <!-- 模板變量的命名規(guī)范與 PHP 普通變量一模一樣,首位不能為數(shù)字,且區(qū)分大小寫,注意保證格式的正確性,如果錯(cuò)誤模板引擎將不會(huì)對(duì)其進(jìn)行解析 -->     <a href="###">{$title}</a> <!-- 正確的格式,被正確解析 -->     <a href="###">{$123}</a> <!-- 錯(cuò)誤的格式,無(wú)法解析 --> </div>

12. 下面是模板常量的使用,模板常量和 PHP 常量雖然名字上都叫他常量,其實(shí)本質(zhì)上并非一回事。模板常量其實(shí)可以看做是偽常量,而并非真正的常量,他是通過(guò)對(duì) XML 標(biāo)記的存儲(chǔ),來(lái)實(shí)現(xiàn)一種全局不變的特定值,這些值需要手動(dòng)的添加到常量文件中。(手動(dòng)添加其實(shí)不太方便,筆者會(huì)在其后的版本迭代中,加入自動(dòng)添加的功能)

首先我們需要在模板常量文件中手動(dòng)添加模板常量,代碼如下:

<?xml version="1.0" coding="utf-8" ?> <root>     <!-- 必須在 root 根標(biāo)記中間進(jìn)行添加,而且一個(gè)標(biāo)記字母都不能出錯(cuò),注意區(qū)分大小寫,如果不慎寫錯(cuò),模板引擎將無(wú)法對(duì)其進(jìn)行獲取 -->     <constant>         <key>WEBNAME</key> <!-- 這里填寫常量名稱注意字母必須全部大寫,第一位不能為數(shù)字,格式與 PHP 定義常量一樣 -->         <value>網(wǎng)站標(biāo)題</value> <!-- 常量值 -->     </constant>          <constant>         <key>123abc</key> <!-- 錯(cuò)誤的常量名 -->         <value></value> <!-- 值可以為空 -->     </constant> </root>

 配置好常量后,接下來(lái)就是在模板文件中進(jìn)行調(diào)用,代碼如下:

<!-- 模板常量的調(diào)用和變量類似,只是取消了 $ 符號(hào),另外和配置的常量名要保持一致 --> <title>{WEBANME}</title> <!-- 正確的名稱,將被正確解析 --> <p>{NAME}</p> <!-- 雖然格式正確,但剛才沒(méi)有進(jìn)行 NAME 常量的配置,因此最終解析后會(huì)返回一個(gè)空值 --> <p>{abc123}</p> <!-- 錯(cuò)誤的名稱,無(wú)法解析 -->

13. 下面是模板的注釋符,有兩種:一種為單行,一種為多行。常用于對(duì)模板文件代碼的注解,可以讓美工配合設(shè)計(jì)界面的時(shí)候了解代碼的實(shí)際含義。

<!-- 大家可以把模板注釋放到 HTML 注釋符號(hào)中,這樣美工在設(shè)計(jì)模板頁(yè)面的時(shí)候會(huì)更加一目了然。--> <!-- 單行注釋的格式是:{@}內(nèi)容可寫可不寫,但不寫也就沒(méi)有意義了 --> {@ 普通的單行注釋} <!-- 正確的格式 --> <!-- {@ HTML 注釋符號(hào)中的單行注釋} --> <!-- 正確的格式 --> {@ 換行的 單行注釋} <!-- 格式錯(cuò)誤,單行注釋無(wú)法換行,模板引擎無(wú)法解析 --> <!-- 多行注釋的格式是:{#}...{/#}一頭一尾要呼應(yīng),內(nèi)容也可以不寫 --> {#}這是多行注釋,注意首位呼應(yīng)!{/#} <!-- 正確的格式 --> {#}這是多行注釋, 我換行了!{/#} <!-- 正確的格式 --> {#}沒(méi)有寫結(jié)尾符號(hào) <!-- 錯(cuò)誤的格式,模板引擎無(wú)法解析 -->

14. 模板加載標(biāo)識(shí)符,加載方式分為 3 類,別分為:include 對(duì)普通文件的直接加載;template 對(duì)模板文件進(jìn)行編譯后加載;source 對(duì)模板文件進(jìn)行編譯后直接輸出編譯文件的路徑(此方法較為特殊且并不完美,需要在特定的場(chǎng)合中使用,比如:框架頁(yè)面的調(diào)用)

首先是對(duì)普通文件的加載調(diào)用,代碼如下:

<!-- 注意抒寫格式,被直接加載的文件多半是 php 文件,且文件必須要存在,不存在的文件,模板引擎將會(huì)給出一個(gè)錯(cuò)誤提示,并且終止代碼的執(zhí)行 --> <!-- 文件名前后的引號(hào),單雙引號(hào)都可以,但必須保持一致,不能一單一雙,否則模板引擎將不會(huì)對(duì)其解析 --> {include path = "test.php"} <!-- 正確的格式,將被解析 --> {include path = 'abc.php"} <!-- 錯(cuò)誤的格式,無(wú)法被解析 --> <!-- 如果出現(xiàn)了同一個(gè)文件被加載了兩次,那么模板引擎只會(huì)對(duì)其加載第一次后,自動(dòng)忽略其后的加載 --> {include path = "123.php"} <!-- 第一次被加載成功 --> {include path = "123.php"} <!-- 與上一個(gè)文件同屬一個(gè)文件,將無(wú)法被再次加載,而被自動(dòng)忽略 -->

下面是對(duì)模板文件的編譯加載,代碼如下:

<!-- 格式與 include 方式基本一樣,就不重復(fù)闡述了,不一樣的是 include 是需要給出具體的路徑地址,而 template 則只需要給出模板名稱即可,模板引擎會(huì)自動(dòng)找到該模板文件 --> {template path = 'test.tpl'} <!-- 正確的格式,將會(huì)被編譯后加載 -->

最后就是模板文件的編譯地址的輸出,該功能較特殊,即使不理解也沒(méi)關(guān)系,該方法有嚴(yán)重的 BUG 尚未處理完畢,因此并不完美,且使用的概率也極低,這里只做簡(jiǎn)單的介紹。在其后的版本迭代中,是否會(huì)保留并完善,尚在定奪,代碼如下:

<!-- 這里我們將使用 iframe 框架頁(yè)面,來(lái)調(diào)用 source 加載方法,調(diào)用格式與前兩種雷同,就不在闡述 --> <!-- 這樣使用其實(shí)就可以了,但有嚴(yán)重的 BUG 出現(xiàn),原因是所有在 frame.tpl 中注入的模板標(biāo)記被解析后,將無(wú)法找到源頭,也就是說(shuō) php 將無(wú)法對(duì)其正確處理,并且因?yàn)闊o(wú)法找到源頭,而會(huì)報(bào)錯(cuò),該 BUG 的解決方案還在研究中,這里僅提供給大家思考 --> <iframe src="{source path = 'frame.tpl'}"></iframe>

15. 接下來(lái)是經(jīng)常會(huì)被用到的 if 分歧語(yǔ)句,他和 php 的 if 語(yǔ)句很類似,但功能上卻很簡(jiǎn)單,且不支持多重判斷以及嵌套判斷,但我會(huì)在其后的版本迭代中讓其功能逐步強(qiáng)大。

<!-- if 語(yǔ)句的格式其實(shí)和多行注釋一樣,一定要注意首位呼應(yīng),但大小寫無(wú)所謂都能夠支持和 PHP 原生的 if 語(yǔ)句是一樣的。 --> {if $action} <!-- 只要被注入的 {$action} 變量的值為 true,或隱式轉(zhuǎn)換后為 true,那么 if 語(yǔ)句中的代碼將被顯示 --> <p>界面1</p> {/if} {if !$action} <!-- 加入了邏輯非的判斷,只要為 false 則被顯示 --> <p>界面2</p> {/if} {if $action} <!-- 雙層判斷的時(shí)候,為 true 時(shí)顯示界面1,為 false 時(shí)顯示界面2 --> <p>界面1</p> {else} <p>界面2</p> {/if} {if $action} <!-- 錯(cuò)誤的格式,沒(méi)有結(jié)尾,不會(huì)被模板引擎解析 -->

16. 終于到了最后的也是最復(fù)雜的 foreach 循環(huán)語(yǔ)句的調(diào)用了,其功能和 PHP 一樣,只是格式上稍有改動(dòng)。

<!-- 注意在調(diào)用 foreach 和 if 語(yǔ)句一樣要首尾呼應(yīng),而且如果變量不是數(shù)組格式,那么 php 將會(huì)自動(dòng)報(bào)出一個(gè)錯(cuò)誤 --> <!-- 其中 $array 就是被注入的模板變量,注意要是數(shù)組格式;而 key 和 value 則是對(duì)應(yīng)數(shù)組中的鍵值對(duì),必須寫,否則格式不正確,將無(wú)法被模板引擎解析 --> {foreach $array(key, value)}     <p>{%key} ... {%value}</p> <!-- 注意鍵值對(duì)可以不是 key 和 value,但一定要和之前同名,否則無(wú)法被解析 --> {/foreach} {foreach $userList(id, username)}    <p>{%id} ... {%username}</p> <!-- 自定義的鍵值對(duì),格式正確 -->    <p>{%password}</p> <!-- 錯(cuò)誤的格式,并沒(méi)有被定義,因此無(wú)法被解析 --> {/foreach}

以上是“PHP模板引擎Prototype怎么配置”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

文章標(biāo)題:PHP模板引擎Prototype怎么配置-創(chuàng)新互聯(lián)
文章路徑:http://www.muchs.cn/article26/piojg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、軟件開(kāi)發(fā)、網(wǎng)站排名建站公司、標(biāo)簽優(yōu)化、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)