亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

PHP模板引擎

eechen / 566人閱讀

摘要:程序如果沒(méi)有被和包起來(lái),就會(huì)直接輸出。當(dāng)一個(gè)文件被包含時(shí),語(yǔ)法解析器在目標(biāo)文件的開頭脫離模式并進(jìn)入模式,到文件結(jié)尾處恢復(fù)。由于此原因,目標(biāo)文件中需要作為代碼執(zhí)行的任何代碼都必須被包括在有效的起始和結(jié)束標(biāo)記之中。

PHP模板引擎的由來(lái)

為了解決當(dāng)時(shí)混合開發(fā)WEB應(yīng)用出現(xiàn)的一系列問(wèn)題:代碼難維護(hù),代碼不可重用,程序員要求知識(shí)廣等問(wèn)題

實(shí)現(xiàn)后端與前端不完全分離,開發(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)單快捷開發(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)有被包起來(lái),就會(huì)直接輸出。

當(dāng)一個(gè)文件被包含時(shí),語(yǔ)法解析器在目標(biāo)文件的開頭脫離 PHP 模式并進(jìn)入 HTML 模式,到文件結(jié)尾處恢復(fù)。由于此原因,目標(biāo)文件中需要作為 PHP 代碼執(zhí)行的任何代碼都必須被包括在有效的 PHP 起始和結(jié)束標(biāo)記之中。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/23287.html

相關(guān)文章

  • PHP模板引擎的原理與實(shí)踐

    摘要:模板文件前端開發(fā)者將前端代碼中的所有數(shù)據(jù)替換成與服務(wù)端開發(fā)者約定好的標(biāo)簽及變量名。聲明本文是學(xué)習(xí)核心技術(shù)與最佳實(shí)踐列旭松陳文著第章模板引擎的原理與實(shí)踐學(xué)習(xí)筆記。 0x00 模板引擎的原理 模板引擎就是在模板文件中使用一系列提前約定好的標(biāo)簽代替原生PHP代碼,通過(guò)訪問(wèn)一個(gè)PHP的入口文件,會(huì)有一個(gè)PHP編譯文件根據(jù)約定替換模板內(nèi)標(biāo)簽以及標(biāo)簽內(nèi)變量,最終將模板文件編譯成一個(gè)PHP文件,然后...

    elina 評(píng)論0 收藏0
  • Laravel 模板引擎(Blade)原理簡(jiǎn)析

    摘要:上次提到過(guò),模板引擎一般是要做三件事情變量值的輸出條件判斷和循環(huán)引入或繼承其他文件現(xiàn)在就來(lái)看看的模板引擎是如何來(lái)處理這三件事情的。引擎接下來(lái)就是本文的重點(diǎn)是如何編譯的。如果有興趣的話,也可以實(shí)現(xiàn)一個(gè)自己的模板解析引擎。 上次提到過(guò),模板引擎一般是要做三件事情: 變量值的輸出(echo) 條件判斷和循環(huán)(if ... else、for、foreach、while) 引入或繼承其他文件 ...

    vvpvvp 評(píng)論0 收藏0
  • Just for fun——PHP框架之簡(jiǎn)單的模板引擎

    摘要:原理使用模板引擎的好處是數(shù)據(jù)和視圖分離。對(duì)于循環(huán)語(yǔ)句怎么辦呢這個(gè)的話,請(qǐng)看流程控制的替代語(yǔ)法 原理 使用模板引擎的好處是數(shù)據(jù)和視圖分離。一個(gè)簡(jiǎn)單的PHP模板引擎原理是 extract數(shù)組($data),使key對(duì)應(yīng)的變量可以在此作用域起效 打開輸出控制緩沖(ob_start) include模板文件,include遇到html的內(nèi)容會(huì)輸出,但是因?yàn)榇蜷_了緩沖,內(nèi)容輸出到了緩沖中 ob...

    X1nFLY 評(píng)論0 收藏0
  • Smarty(一)

    摘要:還有安全特性,可以令模板源碼有強(qiáng)制的約束。并且業(yè)務(wù)邏輯和顯示邏輯分離,是的一個(gè)設(shè)計(jì)理念。是一個(gè)模板引擎,在應(yīng)用程序中,當(dāng)作層視圖層的組件來(lái)使用。不一定保證良好的程序設(shè)計(jì)或者達(dá)成顯示分離的目的,這還得需要開發(fā)者和模板設(shè)計(jì)師的努力。 一、 Smarty的由來(lái) Smarty的主要設(shè)計(jì)理念是:干凈的分離顯示邏輯和程序代碼,在PHP為后端情況下,Smarty模板應(yīng)用在前端,增強(qiáng)PHP的前后端交互...

    aboutU 評(píng)論0 收藏0
  • Smarty(一)

    摘要:還有安全特性,可以令模板源碼有強(qiáng)制的約束。并且業(yè)務(wù)邏輯和顯示邏輯分離,是的一個(gè)設(shè)計(jì)理念。是一個(gè)模板引擎,在應(yīng)用程序中,當(dāng)作層視圖層的組件來(lái)使用。不一定保證良好的程序設(shè)計(jì)或者達(dá)成顯示分離的目的,這還得需要開發(fā)者和模板設(shè)計(jì)師的努力。 一、 Smarty的由來(lái) Smarty的主要設(shè)計(jì)理念是:干凈的分離顯示邏輯和程序代碼,在PHP為后端情況下,Smarty模板應(yīng)用在前端,增強(qiáng)PHP的前后端交互...

    chenjiang3 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<