Symfony twig - 第三方

时间:2015-07-26 19:07:39

标签: php symfony view twig override

我目前正在开展一个symfony项目,

我有什么:

app/Resources/views/mytemplate/

文件夹mytemplate包含我的网络应用程序的所有重要树枝视图。

我的问题是,第三方成员是否有可能创建自己的模板,覆盖我的“mytemplate”而不创建指向它们的控制器?

像:

我有这个模板:

app/Resources/views/mytemplate/home/index.html.twig

其他人可以在相同的视图目录中创建新模板,如:

app/Resources/views/thirdparty/home/index.html.twig

覆盖我的模板。

有这样的可能吗?

问候!

1 个答案:

答案 0 :(得分:2)

嗯,对我来说,你有两种可能性:

  • 您希望能够重新定义的模板是在控制器中使用 renderView()或类似方法指定的模板:在这种情况下,可能性是无限的。由您来定义逻辑层,确定必须呈现哪个模板。例如,您可以强制用户重新定义模板以使用特定的附加模式对其进行命名,然后解析正确的模板以使用感谢所有控制器中继承的方法。

    $content = $this->renderView(
        $this->getInheritedTemplate('AcmeHelloBundle:Hello:index.html.twig'),
        array('name' => $name)
    );
    
  • 必须重新定义的模板是在另一个树枝模板中继承的模板:在这种情况下,它几乎相同。您可以想象编写自己的Twig过滤器/函数以检索正确的模板。代码应该与第一种情况非常相似。

希望这会有所帮助。