首頁 > 後端開發 > php教程 > PHP主|擴展樹枝模板:繼承,過濾器,功能

PHP主|擴展樹枝模板:繼承,過濾器,功能

William Shakespeare
發布: 2025-02-24 09:36:12
原創
728 人瀏覽過

PHP Master | Extending Twig Templates: Inheritance, Filters, Functions

利用樹枝的可擴展性來增強PHP模板

在MVC體系結構中,模板引擎在視圖中簡化了動態內容總體。 由於其可靠的擴展性功能,尤其是模板繼承,過濾器和功能,因此TWIG在PHP模板引擎之間脫穎而出。本文探討了這些擴展程序,以適用於更清潔,更可維護的代碼。

>

twig的可擴展性的關鍵優點:

    >
  • >模板繼承:在子模板中創建具有定義塊的可重複使用的父模板。 這集中了參考,提高了一致性。
  • >濾波器:
  • 修改模板中的變量。 利用內置或自定義過濾器來進行有條件樣式(例如,在數據網格中突出顯示類別)。 >
  • >函數:
  • >注入動態內容。與過濾器相似,自定義功能處理特定需求,例如生成具有所需屬性的表單字段,確保准確性和降低錯誤。
解決傳統模板庫的局限

許多模板庫缺乏可擴展性,導致代碼重複。 例如,管理CSS和JavaScript包含物通常涉及單獨的標題和頁腳模板,或將腳本引用直接嵌入單個頁面模板中。隨著複雜性的增加,這種方法變得繁瑣且容易出錯。 考慮一個方案,需要在單個頁面上進行Google地圖初始化; 在每個頁面的標題中包括地圖腳本效率低下。

> twig的解決方案:模板繼承

樹枝的遺產優雅地解決了這個問題。父模板定義塊:

兒童模板擴展了此父母,覆蓋了特定的塊:

函數保留了父塊的塊內容,允許加法修改。
<!DOCTYPE html>
<html>
<head>
  {% block head %}
    <link rel="stylesheet" href="style.css">
    <🎜>
  {% endblock %}
</head>
<body>
  <div id="grid">{% block content %}{% endblock %}</div>
  <div id="footer">{% block footer %}© 2013 example.com{% endblock %}</div>
</body>
</html>
登入後複製
>

twig濾波器:數據轉換
{% extends "parent.html" %}
{% block head %}
  {{ parent() }}
  <🎜>
{% endblock %}
{% block content %}
  <h1>My Page</h1>
{% endblock %}
登入後複製

> parent()過濾器轉換變量。 一個內置的示例是

用於刪除空格:

自定義過濾器擴展了此功能。 例如,產品網格中的濾鏡類別的過濾器:

trim()在模板中使用:

{{ "  Variable Content  " | trim }}
登入後複製

twig函數:動態內容生成
$filter = new \Twig\TwigFilter('highlight', function ($key) {
    switch (trim($key)) {
        case 'book_category': return '<span class="book">Book</span>';
        case 'cd_category': return '<span class="cd">CD</span>';
        // ... more cases
        default: return $key;
    }
});
$twig->addFilter($filter);
登入後複製

>

函數添加動態內容。 與過濾器相似,自定義功能增強了模板靈活性。 考慮用於生成表單字段的函數:
{% for product in products %}
  <div>
    {{ product.category | highlight }}: {{ product.product }}
  </div>
{% endfor %}
登入後複製

>模板用法:

結論:
$function = new \Twig\TwigFunction('form_text', function ($name, $id, $value = "", $class = "form_text") {
    return '<input type="text" name="' . $name . '" id="' . $id . '" value="' . $value . '" class="' . $class . '">';
});
$twig->addFunction($function);
登入後複製

>樹枝的繼承,過濾器和功能為創建可擴展和可維護的模板提供了有力的機制。 這種方法可以促進代碼重複使用,減少錯誤並提高整體發展效率。 這些功能的組合使樹枝成為PHP模板的最佳選擇。

>

常見問題(常見問題解答):

>

原始輸入中提供的常見問題解答部分已經全面且結構良好。 不需要更改。

以上是PHP主|擴展樹枝模板:繼承,過濾器,功能的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板