【问题标题】:Symfony2 using twig Base Page InheritanceSymfony2 使用 twig Base Page Inheritance
【发布时间】:2013-07-12 04:08:47
【问题描述】:

我正在评估是否要在我即将开始的项目中使用 symfony2 和 twig,我对 symfony2/Twig 世界非常陌生,主要是为我们的每个站点一个一个地构建框架。我的主要问题是,如果我使用的是基本树枝模板,那么我的所有页面都继承自该基本页面是否有可能拥有自己的控制器?以及子页面有自己的控制器?

因此,例如,如果标题有一些逻辑永远不会改变的动态内容,我不需要在每个页面的前端控制器中替换该逻辑,但内容块将在前端控制器中生成。

我将有多个开发人员参与该项目,老实说,如果我可以让他们在我配置项目后编写非常少量的 conde,那就太棒了。

前:

<!-- Very Simplified example:baseTemplate -->
<body>
    <div id="headerContainer">
         {% block headerBlock %}{% endblock %}
    </div>
    <div id="bodyContainer">
         {% block bodyBlock %}{% endblock %}
    </div>
    <div id="footerContainer">
         {% block footerBlock %}{% endblock %}
    </div>
 </body>

我考虑这样做的另一种方法是构建一个扩展控制器类的类,并具有将为其他开发人员处理此代码的函数,他们可以在呈现模板时调用它们。

你会如何处理这个问题?再一次,我绝不是一个经验丰富的 Symfony 开发人员,所以我更多地关注最佳实践以及是否有可能。

【问题讨论】:

    标签: inheritance symfony twig


    【解决方案1】:

    最好的方法是使用 DI 容器,例如如果你想创建复杂的菜单,你可以使用 KnpLabs/KnpMenuBundle,创建 MenuBuilder 并在你需要的控制器中使用它。在这里您可以找到更多示例:

    http://knpuniversity.com/screencast/question-answer-day/symfony2-users-menu-cms#menus

    祝你好运=)

    【讨论】:

      猜你喜欢
      • 2013-09-23
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      • 1970-01-01
      • 2014-03-26
      • 1970-01-01
      相关资源
      最近更新 更多