這篇文章主要為大家展示了“PHP模板引擎Prototype怎么配置”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“PHP模板引擎Prototype怎么配置”這篇文章吧。
成都創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比榮昌網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式榮昌網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋榮昌地區(qū)。費(fèi)用合理售后完善,十年實(shí)體公司更值得信賴(lài)。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è)置,建議不要寫(xiě)中文容易出錯(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)于模板常量的解釋?zhuā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è)置模板常量的文件名稱(chēng),如果不設(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)啟。
// 大家注意,這里我寫(xiě)的是一個(gè)布爾值,其實(shí)這里可以填寫(xiě)任意值,最終都會(huì)被隱式轉(zhuǎn)換為布爾值,寫(xiě) 0 或 1 都可以,我直接寫(xiě)布爾值是為了方便大家的理解! Template :: $cacheSwitch = true;8. 至此模板引擎的配置基本上就已經(jīng)全部完成了,還是很簡(jiǎn)單的。現(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)稱(chēng)模板標(biāo)記)將在接下來(lái)的步驟中逐一講解。
// 注入變量的格式有兩種,大家注意看 API 手冊(cè)的說(shuō)明,數(shù)組格式與傳統(tǒng)的鍵值對(duì)格式均可以,我們兩種都使用一下。 $tpl -> assign('title', '頭銜'); // 首先是傳統(tǒng)鍵值對(duì)格式 $tpl -> assign(array('title' => '頭銜', 'name' => '名稱(chēng)')); // 數(shù)組格式明顯要更加好用一些,因?yàn)樵谧⑷攵鄠€(gè)變量時(shí),就可以不用寫(xiě)多個(gè)注入語(yǔ)句,一句話就搞定了。 // 如果出現(xiàn)了兩個(gè)一模一樣的變量名稱(chēng),那么其后會(huì)將之前的給替換掉。以下代碼,最終 language 變量的值為:英文。 $tpl -> assign(array('language' => '中文', 'language' => '英文'));// 接下來(lái)是加載模板文件,直接寫(xiě)模板名稱(chēng)即可,模板引擎會(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ǔ)句。那么我們首先解釋一下模板變量吧。
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)添加模板常量,代碼如下:
配置好常量后,接下來(lái)就是在模板文件中進(jìn)行調(diào)用,代碼如下:
{NAME}
{abc123}
13. 下面是模板的注釋符,有兩種:一種為單行,一種為多行。常用于對(duì)模板文件代碼的注解,可以讓美工配合設(shè)計(jì)界面的時(shí)候了解代碼的實(shí)際含義。
{@ 普通的單行注釋} {@ 換行的 單行注釋} {#}這是多行注釋?zhuān)⒁馐孜缓魬?yīng)!{/#} {#}這是多行注釋?zhuān)?我換行了!{/#} {#}沒(méi)有寫(xiě)結(jié)尾符號(hào)14. 模板加載標(biāo)識(shí)符,加載方式分為 3 類(lèi),別分為:include 對(duì)普通文件的直接加載;template 對(duì)模板文件進(jìn)行編譯后加載;source 對(duì)模板文件進(jìn)行編譯后直接輸出編譯文件的路徑(此方法較為特殊且并不完美,需要在特定的場(chǎng)合中使用,比如:框架頁(yè)面的調(diào)用)
首先是對(duì)普通文件的加載調(diào)用,代碼如下:
{include path = "test.php"} {include path = 'abc.php"} {include path = "123.php"} {include path = "123.php"}下面是對(duì)模板文件的編譯加載,代碼如下:
{template path = 'test.tpl'}最后就是模板文件的編譯地址的輸出,該功能較特殊,即使不理解也沒(méi)關(guān)系,該方法有嚴(yán)重的 BUG 尚未處理完畢,因此并不完美,且使用的概率也極低,這里只做簡(jiǎn)單的介紹。在其后的版本迭代中,是否會(huì)保留并完善,尚在定奪,代碼如下:
15. 接下來(lái)是經(jīng)常會(huì)被用到的 if 分歧語(yǔ)句,他和 php 的 if 語(yǔ)句很類(lèi)似,但功能上卻很簡(jiǎn)單,且不支持多重判斷以及嵌套判斷,但我會(huì)在其后的版本迭代中讓其功能逐步強(qiáng)大。
{if $action}界面1
{/if} {if !$action}界面2
{/if} {if $action}界面1
{else}界面2
{/if} {if $action}16. 終于到了最后的也是最復(fù)雜的 foreach 循環(huán)語(yǔ)句的調(diào)用了,其功能和 PHP 一樣,只是格式上稍有改動(dòng)。
{foreach $array(key, value)}{%key} ... {%value}
{/foreach} {foreach $userList(id, username)}{%id} ... {%username}
{%password}
{/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ù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。