跳到內容

Twig 配置參考 (TwigBundle)

編輯此頁面

TwigBundle 將 Twig 函式庫整合到 Symfony 應用程式中,以呈現範本。所有這些選項都在您的應用程式設定中的 twig 鍵下設定。

1
2
3
4
5
# displays the default config values defined by Symfony
$ php bin/console config:dump-reference twig

# displays the actual config values used by your application
$ php bin/console debug:config twig

注意

當使用 XML 時,您必須使用 https://symfony.dev.org.tw/schema/dic/twig 命名空間,且相關的 XSD 結構描述可在以下網址取得:https://symfony.dev.org.tw/schema/dic/twig/twig-1.0.xsd

設定

auto_reload

類型boolean 預設值%kernel.debug%

如果 true,每當呈現範本時,Symfony 會先檢查自編譯以來其原始碼是否已變更。如果已變更,則會自動重新編譯範本。

autoescape_service

類型string 預設值null

預設套用至範本的逸出策略(以防止 XSS 攻擊)是在編譯時根據範本的檔案名稱決定的。這表示,例如,*.html.twig 範本的內容會針對 HTML 進行逸出,而 *.js.twig 的內容會針對 JavaScript 進行逸出。

此選項允許定義 Symfony 服務,該服務將用於決定套用至範本的預設逸出。

autoescape_service_method

類型string 預設值null

如果定義了 autoescape_service 選項,則此選項定義呼叫的方法,以決定套用至範本的預設逸出。

如果 autoescape_service 中定義的服務是可調用的(即,它定義了 `__invoke() PHP magic method`_),則您可以省略此選項。

base_template_class

類型string 預設值Twig\Template

7.1

base_template_class 選項自 Symfony 7.1 起已棄用。

Twig 範本在使用它們呈現內容之前會編譯成 PHP 類別。此選項定義所有範本類別從中擴展的基底類別。不建議使用自訂基底範本,因為這會使您的應用程式更難以維護。

cache

類型string | false 預設值%kernel.cache_dir%/twig

在使用 Twig 範本呈現某些內容之前,它們會編譯成常規 PHP 程式碼。編譯是一個耗費資源的過程,因此結果會快取在此組態選項定義的目錄中。

將此選項設定為 false 以停用 Twig 範本編譯。但是,不建議這樣做;即使在 dev 環境中也不建議,因為 auto_reload 選項可確保已變更的快取範本會再次編譯。

charset

類型string 預設值%kernel.charset%

範本檔案使用的字元集。預設情況下,它與 kernel.charset 容器參數的值相同,在 Symfony 應用程式中預設為 UTF-8

date

這些選項定義 date 篩選器用於格式化日期和時間值的預設值。它們對於避免在每次 date 篩選器呼叫時傳遞相同的引數非常有用。

format

類型string 預設值F j, Y H:i

當未傳遞特定格式作為引數時,date 篩選器用於顯示值的格式。

interval_format

類型string 預設值%d days

當未傳遞特定格式作為引數時,date 篩選器用於顯示 DateInterval 實例的格式。

timezone

類型string 預設值:(date_default_timezone_get() 傳回的值)

使用 date 篩選器格式化日期值且未傳遞特定時區作為引數時使用的時區。

debug

類型boolean 預設值%kernel.debug%

如果 true,則編譯後的範本包含一個 __toString() 方法,該方法可用於顯示其節點。

此選項也控制 Twig dump 工具的行為。如果此選項為 false,則 dump() 函數不會輸出任何內容。

default_path

類型string 預設值%kernel.project_dir%/templates

Symfony 預設會在此目錄中尋找應用程式 Twig 範本的路徑。如果將範本儲存在多個目錄中,也請使用 paths 選項。

file_name_pattern

類型stringstringarray 預設值[]

某些應用程式將其前端資產儲存在與 Twig 範本相同的目錄中。lint:twig 命令會篩選這些檔案,僅對符合 *.twig 檔案名稱模式的檔案進行 lint 檢查。

但是,cache:warmup 命令會嘗試編譯所有檔案,包括非 Twig 範本(並且它會忽略編譯錯誤)。結果是不必要的 CPU 和磁碟資源消耗。

在這些情況下,請使用此選項定義作為 Twig 範本的檔案的檔案名稱模式(其餘檔案將被 cache:warmup 忽略)。此選項的值可以是正規表示式、glob 或字串

1
2
3
4
# config/packages/twig.yaml
twig:
    file_name_pattern: ['*.twig', 'specific_file.html']
    # ...

form_themes

類型stringarray 預設值['form_div_layout.html.twig']

定義一個或多個表單主題,這些主題會套用至應用程式的所有表單

1
2
3
4
# config/packages/twig.yaml
twig:
    form_themes: ['bootstrap_5_layout.html.twig', 'form/my_theme.html.twig']
    # ...

定義主題的順序很重要,因為每個主題都會覆寫所有先前的主題。當呈現表單欄位,而該欄位的區塊未在表單主題中定義時,Symfony 會回退到先前的主題,直到第一個主題為止。

這些全域主題會套用至所有表單,甚至是那些使用 form_theme Twig 標籤的表單,但您可以針對特定表單停用全域主題

globals

類型array 預設值[]

它定義自動注入到所有 Twig 範本中的全域變數。瞭解更多關於Twig 全域變數的資訊。

mailer

html_to_text_converter

類型string 預設值:````

實作 HtmlToTextConverterInterface 的服務,當未明確定義時,將用於自動從電子郵件的 HTML 內容建立文字部分。

number_format

這些選項定義 number_format 篩選器用於格式化數值的預設值。它們對於避免在每次 number_format 篩選器呼叫時傳遞相同的引數非常有用。

decimals

類型integer 預設值0

當未將特定數字作為引數傳遞給 number_format 篩選器時,用於格式化數值的十進位數字。

decimal_point

類型string 預設值.

當未將特定字元作為引數傳遞給 number_format 篩選器時,用於將十進位數字與數值的整數部分分隔開的字元。

thousands_separator

類型string 預設值,

當未將特定字元作為引數傳遞給 number_format 篩選器時,用於分隔數值中每組千位數的字元。

optimizations

類型integer 預設值-1

Twig 包含一個名為 optimizer 的擴充功能,預設情況下在 Symfony 應用程式中啟用。此擴充功能會分析範本,以便在編譯時對其進行最佳化。例如,如果您的範本在 for 標籤內未使用特殊的 loop 變數,則此擴充功能會移除該未使用的變數的初始化。

預設情況下,此選項為 -1,這表示所有最佳化都已開啟。將其設定為 0 以停用所有最佳化。您甚至可以選擇性地啟用或停用這些最佳化,如 Twig 文件中關於optimizer 擴充功能的說明。

paths

類型array 預設值null

定義除了default_path 選項中定義的目錄之外,應用程式範本儲存的目錄

1
2
3
4
5
6
# config/packages/twig.yaml
twig:
    # ...
    paths:
        'email/default/templates': ~
        'backend/templates': 'admin'

閱讀更多關於範本目錄和命名空間的資訊。

strict_variables

類型boolean 預設值%kernel.debug%

如果設定為 true,則每當 Twig 變數、屬性或方法不存在時,Symfony 都會顯示例外。如果設定為 false,則會忽略這些錯誤,且不存在的值會替換為 null

本作品,包括程式碼範例,依據 Creative Commons BY-SA 3.0 授權條款授權。
目錄
    版本