您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)PHP中的模板引擎介紹,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
PHP模板引擎的由來(lái)
● 為了解決當(dāng)時(shí)混合開(kāi)發(fā)WEB應(yīng)用出現(xiàn)的一系列問(wèn)題:代碼難維護(hù),代碼不可重用,程序員要求知識(shí)廣等問(wèn)題
● 實(shí)現(xiàn)后端與前端不完全分離,開(kāi)發(fā)與美工可以分工合作,提高效率
PHP模板引擎帶來(lái)的問(wèn)題
● 由于是不完全分離,導(dǎo)致分工中還有部分耦合地方
● PHP模板引擎 導(dǎo)致了 模板引擎語(yǔ)言 的誕生,增加學(xué)習(xí)成本,還導(dǎo)致是前端和后端誰(shuí)學(xué)習(xí)的爭(zhēng)論
當(dāng)今PHP模板引擎還有價(jià)值嗎?
● 當(dāng)前完全前后端分離的解決方案已經(jīng)出現(xiàn),前端三大框架(vuejs/React..等)都已經(jīng)實(shí)現(xiàn)前端模板引擎了,所以基本PHP模板已經(jīng)給取代了,減輕服務(wù)端壓力
● 但如果要維護(hù)老項(xiàng)目,還需要用到PHP模板引擎,如果想簡(jiǎn)單快捷開(kāi)發(fā)PC項(xiàng)目,使用PHP模板引擎是比較好的選擇
PHP模板引擎實(shí)現(xiàn)原理
● 讀取模板文件的內(nèi)容
$content = file_get_contents($tmplFile);
● 使用正則表達(dá)式把模板語(yǔ)言替換為PHP語(yǔ)言
$repContent = preg_replace($pattern, $replacement, $content);
● 保存成新的.php文件
file_put_contents($comFile,$repContent);
● 最后把新生成的.php文件包含進(jìn)來(lái)
include $comFilePath;
include與require注意事項(xiàng)
● include與require的功能是把后面的字符串作為文件名,不論文件擴(kuò)展名是不是.php,都認(rèn)為那個(gè)文件是php程序,引入到當(dāng)前程序中運(yùn)行。
● php程序如果沒(méi)有被<?php和?>包起來(lái),就會(huì)直接輸出。
● 當(dāng)一個(gè)文件被包含時(shí),語(yǔ)法解析器在目標(biāo)文件的開(kāi)頭脫離 PHP 模式并進(jìn)入 HTML 模式,到文件結(jié)尾處恢復(fù)。由于此原因,目標(biāo)文件中需要作為 PHP 代碼執(zhí)行的任何代碼都必須被包括在有效的 PHP 起始和結(jié)束標(biāo)記之中。
看完上述內(nèi)容,你們對(duì)PHP中的模板引擎有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。