Symfony2使用twig Base Page Inheritance

时间:2013-07-12 04:08:47

标签: inheritance symfony twig

我正在评估我是否想要使用symfony2和twig进行我即将推出的项目,我是symfony2 / Twig世界的新手,我们一直在逐步为每个站点构建框架。我的主要问题是,如果我使用基本树枝模板,我的所有页面都是继承的,那么该基页是否可以拥有自己的控制器?以及拥有自己的控制器的子页面?

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

我将有多个开发人员参与该项目,并且说实话,如果我可以让他们在配置项目之后写出非常少量的内容,这将是非常棒的。

EX

<!-- 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开发人员,因此更多地考虑最佳实践以及它是否可行。

提前感谢您的时间。 乔恩

1 个答案:

答案 0 :(得分:0)

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

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

祝你好运=)