2012-08-28 54 views
0

Symfony2在哪裏檢測從哪裏加載模板:app/Resourses/views/Bundle/Resourses/views/Symfony2如何檢測從哪裏加載模板?

我需要重寫它才能在查看app/Resourses/views/之前查找其他目錄中的模板。

我發現:Symfony\Bundle\FrameworkBundle\CacheWarmer\TemplateFinder

現在我只需要重寫它。怎麼樣?

+0

我發現:Symfony \ Bundle \ FrameworkBundle \ CacheWarmer \ TemplateFinder現在jast需要重寫。怎麼樣? –

回答

0

Symfony2的工作與此工作流程

  1. 訪問路徑,將控制傳遞給控制器​​,呈現視圖(模板)
  2. 如果視圖不重寫(app/..../)然後包模板是呈現
  3. 如果有一個覆蓋,然後把它

所以問題是:我如何覆蓋模板?

有在Symfony2中

  • 用於覆蓋模板兩種不同的方式定義與同名一個模板到app/resources目錄。一起「相同的名字」,你必須重現相同的捆綁結構。所以,如果你的模板是,即myFooBundle/views/mainTemplate.html.twig你必須在app/resources/myFooBundle/views創建一個新的模板來覆蓋它,並把它mainTemplate.html.twig
  • 你必須從頭開始創建一個新的包和覆蓋getParent()方法必須返回一個字符串包含要覆蓋的包名稱(myfooBundle)。現在,如果您在原始的相同位置中創建了一個新模板,那麼您已將其覆蓋。不建議使用此方法,因爲您也必須重寫控制器。