如何在Symfony

时间:2017-06-28 13:28:14

标签: symfony templates twig web-deployment symfony-3.3

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

我遇到问题的地方是twig模板:虽然客户会按原样使用大部分模板,但他们需要自定义CSS样式,常规布局等部分内容,并偶尔进行设计覆盖。

我发现的选项是:

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

1 个答案:

答案 0 :(得分:0)

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

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

使用Twig,您有很多可能解决这样的问题。

Drupal 8使用了Theming概念。

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

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