Symfony2如何检测从哪里加载模板?

时间:2012-08-28 21:16:23

标签: symfony twig

Symfony2从哪里检测来自app/Resourses/views/Bundle/Resourses/views/的模板?

在查看app/Resourses/views/之前,我需要覆盖它以在另一个目录中查找模板。

我找到了:Symfony\Bundle\FrameworkBundle\CacheWarmer\TemplateFinder

现在我只需要覆盖它。怎么样?

1 个答案:

答案 0 :(得分:0)

Symfony2适用于此工作流程

  1. 访问路径,将控制传递给控制器​​,渲染视图(模板)
  2. 如果视图未被覆盖(app/..../),则捆绑模板将呈现
  3. 如果有覆盖,则接受
  4. 所以问题是:如何覆盖模板?

    symfony2

    中有两种不同的覆盖模板方式
    • 同名的模板定义到app/resources目录中。一起“同名”你必须重现相同的捆绑结构。因此,如果您的模板位于myFooBundle/views/mainTemplate.html.twig,则必须通过在app/resources/myFooBundle/views中创建一个新模板并将其称为mainTemplate.html.twig
    • 来覆盖它
    • 您必须从头开始创建一个新的包并覆盖getParent()方法,该方法必须返回一个包含您要覆盖的包名称的字符串(myfooBundle)。现在,如果您在原件的相同位置中创建新模板,则会覆盖它。建议不要使用此方法,因为您还必须覆盖控制器。