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
篩選器呼叫時傳遞相同的引數非常有用。
debug
類型:boolean
預設值:%kernel.debug%
如果 true
,則編譯後的範本包含一個 __toString()
方法,該方法可用於顯示其節點。
此選項也控制 Twig dump 工具的行為。如果此選項為 false
,則 dump()
函數不會輸出任何內容。
default_path
類型:string
預設值:%kernel.project_dir%/templates
Symfony 預設會在此目錄中尋找應用程式 Twig 範本的路徑。如果將範本儲存在多個目錄中,也請使用 paths 選項。
file_name_pattern
類型:string
或 string
的 array
預設值:[]
某些應用程式將其前端資產儲存在與 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
類型:string
的 array
預設值:['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 標籤的表單,但您可以針對特定表單停用全域主題。
mailer
html_to_text_converter
類型:string
預設值:````
實作 HtmlToTextConverterInterface 的服務,當未明確定義時,將用於自動從電子郵件的 HTML 內容建立文字部分。
number_format
這些選項定義 number_format
篩選器用於格式化數值的預設值。它們對於避免在每次 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
。