Twig 簡介:快速啟動 WordPress 開發的完美工具
關於WordPress 的未來已經有很多文章,許多人認為它缺乏模板語言,特別是當Django、Ruby on Rails、Node.js、Laravel 甚至Drupal 等平台都擁有模板語言時。像是「WordPress 為近 25% 的網路提供支援」這樣的事實讓人很難質疑其目前基於 PHP 的模板系統。但由於程式碼中的模組化仍然缺失,人們可以問核心何時會有模板引擎。
好消息就在這裡! Twig 模板引擎和一個名為 Timber 的外掛可以幫助我們在 WordPress 中編寫超級乾淨和模組化的程式碼。在本系列中,我們將討論它的實作以及與 WordPress 的整合。我將從 Twig 是什麼以及為什麼需要它的基礎知識開始,在接下來的三篇文章中,我將解釋透過 Timber 與 WordPress 整合的不同類型的 Twig 模板。
什麼是樹枝?
Twig 是一個靈活、快速且安全的 PHP 模板引擎。 Twig 由 Symfony 框架的創建者 Fabien Potencier 為您帶來,被認為是功能豐富、廣泛、快速且高效。
通常,當您在 WordPress 中編碼時,您會將 PHP 區塊與 HTML 混合在一起(這就是我們所說的意大利麵條程式碼)。這不屬於超乾淨的標記。為了採用模組化和 Doing it Right™ 方法,需要將 View
與 ##Data 分開。使用 Twig,您可以將視圖層與應用程式的其餘部分分開。 Twig 採用模型-視圖-控制器 (MVC) 模式,有助於維護乾淨的程式碼。
多年來,開發了不同的 PHP 模板引擎,但 Twig 肯定在以下能力方面超越了所有這些引擎。
功能豐富
Twig 是功能最豐富、最強大的 PHP 模板引擎之一。它支援多重繼承和自動輸出轉義,並有助於將模板劃分為多個區塊或元件以保持模組化設計。不僅如此,開發者還可以添加更多外掛程式來滿足任何前端需求。
快速有效率
與普通 PHP 模板相比,透過 Twig 編譯的模板承擔的開銷要少得多。編碼例程已高度最佳化,您可以節省大量開發時間。當您計劃更改基本框架時,它也很有用,因為 Twig 可以幫助創建一個單獨的模板層,可以與任何後端框架(無論是 Laravel 還是 WordPress)連接。
設計者和開發者友善
#Twig 適合設計師和開發人員的要求。即使您不是程式碼迷,使用 Twig 也很簡單,而且基於元件編寫模組化模板感覺很正確。其語法易於理解,並且避免在模板檔案中實現動態 PHP 操作。總而言之,它非常現代,並且適用於所有最新的編碼標準。使用 Twig 處理時,輸出轉義概念非常全面。
讓我們從一個簡單的例子開始。
在常規 PHP 中,您會得到以下輸出:
<?php echo $foo; // $foo is any random variable ?> <?php echo htmlspecialchars( $foo, ENT_QUOTES, 'UTF-8' ) ?>
{{ foo }} {{ foo|escape }} {{ foo|e }} {# shortcut to escape a variable #}
安全性
Twig 自行清理並保護資料。其獨特的
沙箱模式可以智慧地監控整個程式碼並過濾出最佳的結果。這意味著可以輕鬆、安全地實施使用者生成的模板。沙箱環境只能針對特定模板在全域或本地啟用,如下所示:
{{ include( 'post.html', sandboxed = true ) }}
靈活
我剛剛提到 Twig 是一個現代模板引擎,這也意味著您可以擴展它的功能,因為它非常靈活。它完全支援高效的
詞法分析器和解析器,開發人員可以透過它們定義自訂標籤、過濾器、函數等。
其他除了上面提到的所有功能之外,Twig 有很好的文件記錄並經過充分的單元測試。它的 API 和範本庫完全穩定,可以處理各種複雜的任務。還提供專門的線上書籍和完整的 API 文件。
Twig 是 Drupal 8 的新模板語言,這是我充滿信心地使用這個模板引擎的主要動機。 XWP 的優秀人員,尤其是 Weston Ruter,正在製定一項提案,使 Twig 符合 WordPress.com VIP 標準。
Timber:將 Twig 與 WordPress 整合
到目前為止,整個討論都圍繞著兩件事。首先,我們應該採用模組化方法,在建立自訂 WordPress 主題時將模板與資料分開,其次,Twig 可以幫助我們做到這一點。但是是什麼讓這兩者走在一起呢?
為了實現 Twig 和 WordPress 之間的最佳集成,人們做出了不同的努力,其中一項勇敢的嘗試是由一家名為 Upstatement 的網絡機構創建的 Timber。它使用 Twig 模板引擎,這使得在 WordPress 中編寫模組化和乾淨的程式碼成為可能。
Timber 和 Twig 可以幫助您建立快速且模組化的 WordPress 主題。這樣您就可以將 HTML 程式碼與普通 PHP 檔案分開,從而確保更永續的程式碼模式。將 HTML 和 PHP 分開的概念使得 PHP 檔案可以嚴格專注於提供 data
和邏輯,而 HTML 檔案(Twig 檔案)則專注於 view
Web 應用程式層。
總的來說,Timber 執行三個主要任務:
- #它將 Twig 整合到 WordPress 中。
- 它渲染 Twig 模板。
- 它新增了基礎 WordPress 資料集。
我認為他們的使命宣言說明了一切:
Timber 是一款適合希望透過直覺、一致且完全可存取的介面將 HTML 轉換為高品質 WordPress 主題的開發人員的工具。
- 直覺:API 的編寫以使用者為中心,圍繞著程式設計師的期望。
- 一致:所有 WordPress 物件都可以透過多型屬性(例如 slug、ID 和名稱)進行存取。
- 可訪問:沒有黑盒子。我們已盡一切努力讓開發人員能夠存取 100% 的 HTML。
木材如何運作?
對於常規 WordPress 主題,所有 PHP 和 HTML 程式碼片段都整合在同一個 PHP 模板檔案中並進行修改。然而,使用 Timber,我們將模板文件拆分為兩個不同的資料文件:PHP 文件和視圖/模板文件,即 Twig 文件。
因此,第一個檔案的副檔名為 .php
,第二個檔案的副檔名為 .twig
。因此,如果您要為 single.php
建立模板文件,您的文件將命名為 single.php
和 single.twig
。
前者是整理資料的文件,後者是使用HTML中的資料的範本。這樣您就可以以模組化的方式在 WordPress 主題中加入動態操作。
讓我們總結一下:
Timber 處理 PHP 和 HTML (Twig) 檔案中的 WordPress 主題模板檔案。這樣您就可以將邏輯與顯示分開。它為您提供了構建、設計和顯示主題的新方法。
結論
Twig 有很多值得喜愛的地方。本文只是介紹在 WordPress 中使用模板引擎的優點。模組化程式碼是更好的程式碼並且易於維護。現在是開發人員進行工作流程轉變的時候了,我相信 Twig 可以幫助他們做到這一點。
在接下來的文章中,我將展示使用 Twig 範本檔案的實際實作。我們將透過程式碼範例研究如何實作 Twig 來渲染 WP 圖像、評論和選單。在此之前,如果您發現任何疑問,請隨時詢問。不要忘記在 Twitter 上聯絡我們。
以上是Twig 簡介:快速啟動 WordPress 開發的完美工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

會話劫持可以通過以下步驟實現:1.獲取會話ID,2.使用會話ID,3.保持會話活躍。在PHP中防範會話劫持的方法包括:1.使用session_regenerate_id()函數重新生成會話ID,2.通過數據庫存儲會話數據,3.確保所有會話數據通過HTTPS傳輸。

SOLID原則在PHP開發中的應用包括:1.單一職責原則(SRP):每個類只負責一個功能。 2.開閉原則(OCP):通過擴展而非修改實現變化。 3.里氏替換原則(LSP):子類可替換基類而不影響程序正確性。 4.接口隔離原則(ISP):使用細粒度接口避免依賴不使用的方法。 5.依賴倒置原則(DIP):高低層次模塊都依賴於抽象,通過依賴注入實現。

在PHPStorm中如何進行CLI模式的調試?在使用PHPStorm進行開發時,有時我們需要在命令行界面(CLI)模式下調試PHP�...

如何在系統重啟後自動設置unixsocket的權限每次系統重啟後,我們都需要執行以下命令來修改unixsocket的權限:sudo...

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。
