symfony 模板規則和引用

symfony 模板規則和引用

模板命名規則和存放位置

  默認情況下,模板可以存放在兩個位置。

app/Resources/view/
這個視圖模板路徑包含了應用的基礎模板,也覆蓋第三方bundle模板,(see 重載Bundle模板
path/to/bundle/Resources/views/
每一個bundle 都會把自己的視圖模板放在 app/Resources/views/ bundleDirectory或者是自己的子目錄下的Resources/views/下。如果你想將你的應用包分享那麼請將你的視圖模板放在bundle的子目錄下的views/裏。
您使用的大多數模板將存放在 app/Resources/views/目錄下。在引用app/Resources/views/base.html.twig 模板時,您將使用base.html.twig路徑加載模板。在引用app/Resources/views/blog/index.html.twig模板時,您將使用blog/index.html.twig路徑將模板加載。

引用Bundle裏的模板

symfony通過使用 bundle:directory:filename 的字符串來加載存放在bundle子目錄下的視圖模板。有幾種模板加載方式被允許,每一種都有特定的使用場景。

  1. AcmeBlogBundle:Blog:index.html.twig: 這種加載方式被使用在指定一個頁面。它們三個部分通過”:”符號分隔。各自的含義如下所示:
    -AcmeBlogBundle: 該模板位於AcmeBlogBundle 的內部(e.g. src/Acme/BlogBundle);
    - Blog: 表示該模板存放在Blog的子目錄中 Resources/views;
    - index.html.twig: 要加載的模板的實際名稱。
    假設AcmeBlogBu​​ndle位於src/Acme/ BlogBu​​ndle中,佈局的最終​​路徑是src/Acme/BlogBu​​ndle/Resources/views/Blog/index.html.twig。

    2.AcmeBlogBundle::layout.html.twig: 此語法引用特定於AcmeBlogBu​​ndle的基本模板。由於中間“目錄”部分缺失(例如Blog),所以模板位於AcmeBlogBu​​ndle內的Resources / views / layout.html.twig。是的,當“controller”子目錄部分丟失時,字符串中間有2個冒號。

    在重載Bundle的模板部分,您將瞭解如何將每個模板存放在AcmeBlogBu​​ndle中,例如,可以通過在app/Resources/AcmeBlogBu​​ndle/views/目錄中放置一個相同名稱的模板來覆蓋。這使得可以覆蓋任何bundle中的模板。
    小技巧:模板命名語法看起來很眼熟 - 它類似於用於引用Controller命名規則的命名約定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章