3

我有一个应用程序构建Symfony 3.3Twig它将分发给更多客户。我parameters.yml用来定制它的行为,它似乎运作良好。

我有一个问题是twig模板:尽管客户将按原样使用大多数模板,但他们需要自定义一些部分,如 CSS 样式、总体布局并偶尔进行设计覆盖。

我确定的选项是:

  1. 为每个客户准备一整套模板。问题是升级将是一场噩梦,因为我们必须修补每个模板并考虑差异
  2. 通过 YML 文件自定义模板。问题是它很快就会变得太复杂并且参数的数量可能很大
  3. 交付一组模板app/Resources/views并允许客户通过在另一个文件夹中创建另一个同名文件来覆盖任何模板
  4. 提供一组模板AppBundle/Resources/views并让客户覆盖它们app/Resources/views
  5. 将应用程序创建为 Symfony 包(即 MyAppBundle),并通过 composer 包含 MyAppBundle 将应用程序部署到每个客户。我非常喜欢这个解决方案,但我不知道是否可以轻松实施。

你对如何解决这个问题有什么建议吗?

4

1 回答 1

0

我认为在您的情况下,最好的方法是考虑主要部分和客户部分,然后构建块并覆盖与客户相关的所有部分,例如 CSS 或其他任何部分。例如,如果您知道有特殊部分,您可以构建宏。

使用 Block 概念,您可以预定义模板,但客户可以使用自己的模板覆盖您定义的部分。

使用 Twig,您有很多解决此类问题的可能性。

Drupal 8 使用了主题概念。

https://www.chapterthree.com/blog/twig-concepts-drupal-8-themes-part-ii

也许你可以看看他们是如何解决这个问题的,你可以为你的问题找到一个好的解决方案。

于 2017-06-28T13:37:18.387 回答