首頁 >後端開發 >PHP問題 >php twig是什麼意思

php twig是什麼意思

藏色散人
藏色散人原創
2020-06-30 11:18:553736瀏覽

php twig是一款靈活、快速、安全的PHP模板引擎,Twig將模板編譯為純粹的,最優化的PHP程式碼;Twig擁有沙盒模式,用於評估未受信任的模板程式碼;Twig由一個靈活的詞法分析器和解析器驅動。

php twig是什麼意思

php twig

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

快速:Twig將模板編譯為純粹的,最優化的PHP程式碼。它的開銷與常規的PHP程式碼相比,已經降到了極低。

安全:Twig擁有沙盒模式,用於評估未受信任的範本程式碼。這使得Twig可以用於允許使用者自行修改模板設計的應用程式中。

靈活:Twig由一個靈活的詞法分析器和解析器驅動。這使得開發者可以自訂標籤和過濾器,並創建自己的DSL。

為何會有這款模板引擎?

在為PHP帶來模板引擎時,許多人會告訴你PHP本身就是一款模板引擎啊。雖然一開始PHP是作為一門模版語言使用,但它並不像近年來的任何模板引擎一樣發展。事實上,他不支援現代模板引擎的許多特性:

簡潔:PHP語言在涉及到輸出轉義時冗長而可笑。

<?php echo $var ?>
<?php echo htmlspecialchars($var, ENT_QUOTES, &#39;UTF-8&#39;) ?>

相較之下,Twig擁有非常簡潔的語法,它使得模版更具可讀性:

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

模版導向語法:Twig為通用的模式提供了快捷方式,例如在遍歷一個空數組時,會顯示一個預設文字:

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

全功能:Twig為你提供了輕鬆建立強大模版的一切:多重繼承,區塊,自動化輸出轉義,以及其他許多特性:

{% extends "layout.html" %}
{% block content %}
    页面内容...
{% endblock %}

易學:Twig的語法非常易學,即使是網頁設計師也能毫無阻礙地快速完成工作:

#當然,PHP也是許多模板引擎專案中使用的語言。但它們中的大多數仍是使用PHP 4開發的,並且不支援最佳的web開發實踐:

可擴展性:即使是在最複雜的情況下,Twig也足夠靈活滿足你的需求。由於開放的體系,你可以實現你自己的語言結構(標籤、過濾器、函數、甚至運算子等)來創建你自己的DSL。

已被單元測試:Twig經歷過完整的單元測試,它是穩定的,能用於大型專案的。

文件:Twig擁有完整的文檔,以及專用的線上手冊,當然還有完善的API文檔。

安全:說到安全,Twig擁有一些獨特的特性:

自動輸出轉義:為安全性考慮,你可以全域啟用自動輸出轉義,或只對某個區塊啟用:

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

沙盒:Twig可以在沙盒環境下評估任意模版,使用者只能存取一組有限的標籤,過濾器,以及由開發者定義的物件方法。沙盒可以全局地或單獨對某些模版啟用:

{{ include(&#39;page.html&#39;, sandboxed = true) }}

清晰的錯誤訊息:無論何時你在模版中遇到了語法錯誤,Twig都會輸出帶有出錯的文件名和行號的幫助資訊.它非常有助於調試。

快速:Twig的目標之一就是盡可能地快。為了盡可能實現最佳的速度,Twig將模版編譯成極致最佳化的PHP程式碼。它的開銷與常規的PHP程式碼相比,已經降到了極低。

更多相關知識,請造訪PHP中文網!

以上是php twig是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多