【问题标题】:Override bundle template from another bundle覆盖来自另一个包的包模板
【发布时间】:2018-10-03 07:59:44
【问题描述】:

我正在为 Sylius 电子商务框架开发一个插件。 我正在使用带有 Sylius 标准 1.2 的 Symfony 4。 在这个插件(它只是一个 Symfony Bundle)中,我想覆盖在 SyliusAdminBundle 中定义的模板,并且我想避免将它复制到 AppBundle 视图文件夹中。

我尝试按照此处显示的说明进行操作:Override bundle template from another bundle in symfony 3.4/4

但我不知道如何使它工作!

你知道我该如何处理吗?

【问题讨论】:

  • github.com/FriendsOfSymfony/FOSUserBundle/issues/2783 - 同样的问题,他们在那里也有解决方案。
  • @DominicWehrmann,不,这不是同一个问题。我想在第三方包中覆盖模板,而不是在 AppBundle 项目中
  • 我怀疑这是可能的。那么如何分叉另一个项目并进行更改?
  • 我想避免分叉 Sylius 项目。无论如何,如果不可能,我将使用其他方法。感谢您的关心
  • 嗯,我又想了想。您可以尝试将您的“新”模板放入第三方捆绑包的资源文件夹中,如我的第一个链接中所述,这样行吗?

标签: symfony sylius


【解决方案1】:

我认为您应该能够将覆盖的模板放在templates/bundles/SyliusAdminBundle/path/to/template.html.twig 中。同样可以在主题内部完成:app/themes/ThemeName/SyliusAdminBundle/path/to/template.html.twig。通常,插件只是简单地给出在你的项目中进行调整的说明。这不是最灵活的,但项目很清楚哪些模板发生了变化。

更多背景信息:https://docs.sylius.com/en/1.2/customization/template.html

Symfony 曾经有一个“捆绑继承”机制来执行您最初计划的方式,但该功能已在 3.4 版中被弃用:https://symfony.com/blog/new-in-symfony-3-4-deprecated-bundle-inheritance

【讨论】:

  • "通常插件只是简单地给出在你的项目中进行调整的指示。它不是最灵活的,但是对于项目来说哪些模板被改变了是非常清楚的。"事实上,我经常看到插件给出这样的指令,但我想避免这种情况。
猜你喜欢
  • 2021-11-08
  • 2016-03-22
  • 1970-01-01
  • 2012-11-15
  • 2021-06-04
  • 2020-01-10
  • 2013-04-01
  • 2011-06-02
  • 2013-10-01
相关资源
最近更新 更多