溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php中的twig是什么

發(fā)布時(shí)間:2020-07-01 10:12:32 來(lái)源:億速云 閱讀:301 作者:Leah 欄目:編程語(yǔ)言

php中的twig是什么?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

php twig

Twig是一款靈活、快速、安全的PHP模板引擎。

快速:Twig將模板編譯為純粹的,最優(yōu)化的PHP代碼。它的開(kāi)銷(xiāo)與常規(guī)的PHP代碼相比,已經(jīng)降到了極低。

安全:Twig擁有沙盒模式,用于評(píng)估未受信任的模板代碼。這使得Twig可以用于允許用戶自行修改模板設(shè)計(jì)的應(yīng)用程序中。

靈活:Twig由一個(gè)靈活的詞法分析器和解析器驅(qū)動(dòng)。這使得開(kāi)發(fā)者可以自定義標(biāo)簽和過(guò)濾器,并創(chuàng)建自己的DSL。

為何會(huì)有這款模板引擎?

在為PHP帶來(lái)模板引擎時(shí),許多人會(huì)告訴你PHP本身就是一款模板引擎啊。雖說(shuō)一開(kāi)始PHP是作為一門(mén)模版語(yǔ)言使用,但它并不像近年來(lái)的任何模板引擎一樣發(fā)展。事實(shí)上,他不支持現(xiàn)代模板引擎的許多特性:

簡(jiǎn)潔:PHP語(yǔ)言在涉及到輸出轉(zhuǎn)義時(shí)冗長(zhǎng)而可笑。

<?php echo $var ?>
<?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>

相比之下,Twig擁有非常簡(jiǎn)潔的語(yǔ)法,它使得模版更具可讀性:

{{ var }}
{{ var|escape }}
{{ var|e }}         {# shortcut to escape a variable #}

模版導(dǎo)向語(yǔ)法:Twig為通用的模式提供了快捷方式,例如在遍歷一個(gè)空數(shù)組時(shí),會(huì)顯示一個(gè)默認(rèn)文本:

{% for user in users %}
    * {{ user.name }}
{% else %}
    No users have been found.
{% endfor %}

全功能:Twig為你提供了輕松構(gòu)建強(qiáng)大模版的一切:多重繼承,塊,自動(dòng)化輸出轉(zhuǎn)義,以及其他許多特性:

{% extends "layout.html" %}
{% block content %}
    頁(yè)面內(nèi)容...
{% endblock %}

易學(xué):Twig的語(yǔ)法非常易學(xué),即使是網(wǎng)頁(yè)設(shè)計(jì)師也能毫無(wú)阻礙地快速完成工作:

當(dāng)然,PHP也是許多模板引擎項(xiàng)目中用到的語(yǔ)言。但它們中的大多數(shù)仍是使用PHP 4開(kāi)發(fā)的,并且不支持最佳的web開(kāi)發(fā)實(shí)踐:

可擴(kuò)展性:即使是在最復(fù)雜的情況下,Twig也足夠靈活滿足你的需求。得益于開(kāi)放的體系,你可以實(shí)現(xiàn)你自己的語(yǔ)言結(jié)構(gòu)(標(biāo)簽、過(guò)濾器、函數(shù)、甚至運(yùn)算符等)來(lái)創(chuàng)建你自己的DSL。

已被單元測(cè)試:Twig經(jīng)歷過(guò)完整的單元測(cè)試,它是穩(wěn)定的,能用于大型項(xiàng)目的。

文檔:Twig擁有完整的文檔,以及專(zhuān)用的在線手冊(cè),當(dāng)然還有完善的API文檔。

安全:說(shuō)到安全,Twig擁有一些獨(dú)特的特性:

自動(dòng)輸出轉(zhuǎn)義:為安全考慮,你可以全局啟用自動(dòng)輸出轉(zhuǎn)義,或者只對(duì)某個(gè)塊啟用:

{% autoescape true %}
    {{ var }}
    {{ var|raw }}     {# var won't be escaped #}
    {{ var|escape }}  {# var won't be doubled-escaped #}
{% endautoescape %}

沙盒:Twig可以在沙盒環(huán)境下評(píng)估任意模版,用戶只能訪問(wèn)一組有限的標(biāo)簽,過(guò)濾器,以及由開(kāi)發(fā)者定義的對(duì)象方法。沙盒可以全局地或者單獨(dú)對(duì)某些模版啟用:

{{ include('page.html', sandboxed = true) }}

清晰的錯(cuò)誤信息:無(wú)論何時(shí)你在模版中遇到了語(yǔ)法錯(cuò)誤,Twig都會(huì)輸出帶有出錯(cuò)的文件名和行號(hào)的幫助信息。它非常有助于調(diào)試。

快速:Twig的目標(biāo)之一就是盡可能地快。為了盡可能實(shí)現(xiàn)最佳的速度,Twig將模版編譯成極致優(yōu)化的PHP代碼。它的開(kāi)銷(xiāo)與常規(guī)的PHP代碼相比,已經(jīng)降到了極低。

關(guān)于php中的twig是什么問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI