【问题标题】:What is the main difference between include, use and extend in Symfony2?Symfony2 中包含、使用和扩展的主要区别是什么?
【发布时间】:2016-05-13 06:06:50
【问题描述】:

我正在学习 Symfony2 开发框架,但找不到任何合适的解释。

举例说明会很有帮助。

【问题讨论】:

  • 你看过 twig 手册(而不是 Symfony 文档吗?twig 手册更详细。

标签: php symfony frameworks


【解决方案1】:

何时使用包括:

在 50 个页面中,有 6 个页面共享一大块 HTML - 您创建一个 shared-chunk.twig 并将其包含在这 6 个页面中。

何时使用继承:

您有 50 个页面共享相同的布局 - 您创建一个 layout.twig 作为父级,每个页面都扩展了该 layout.twig。所以父母是 通用的,孩子是具体的。

另一种用法:

您注意到您的 layout.twig 有点杂乱,您希望 对其进行模块化,因此您将 sidebar.twig 拆分为一个单独的文件并 将其包含在 layout.twig 中。

所以:

如上所述 - 这是一个设计问题,而不是可编程性问题。它是 不是关于:我可以使用不同的方法实现相同的结果 编程技术,它关于哪种用法是更好的设计。

【讨论】:

    【解决方案2】:

    扩展 - 您的大多数页面共享相同的布局,因此您创建一个 base.twig 作为父级,并且每个页面都扩展该 layout.twig。所以父类是通用的,子类是特定的。

    包含 - 您注意到您的 layout.twig 有点杂乱,您想对其进行模块化,因此您将 sidebar.twig 拆分为一个单独的文件并将其包含在 layout.twig 中。

    使用 - 您的导航栏出现在每个页面上,因此您创建一个 nav.html.twig 文件并在 base.twig 中使用它,添加一个导航块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 2016-10-31
      • 2011-06-10
      • 2012-08-11
      • 2013-06-17
      相关资源
      最近更新 更多