php - 适当的开发。覆盖 Twig 模板的方法

标签 php symfony sylius

我最近决定看一看 Sylius,因为我喜欢对开发人员友好的 Symfony2 项目的想法。

我试图浏览各种文档文章,但我似乎无法找到一个非常基本的问题的答案:在新网站上开始开发的推荐方法是什么-store,这将包括(至少)实现自己的 HTML 模板设计的能力,并且仍然能够轻松地将 Sylius 升级到 future 的版本?

我能想出的最佳方法是创建一个新的包(在我的例子中,名为 WebBundle),它基于默认的 SyliusWebBundle。这就是问题所在。为了获得允许 Sylius 使用我的包中的模板而不是默认模板的最低限度,我不得不经历许多麻烦。以下是我到目前为止所做的几件事:

  • SyliusWebBundle 复制了原始 Controller 目录的内容。将返回值更改为使用 WebBundle 而不是 SyliusWebBundle $this->render() 参数中字符串的一部分,以及类命名空间。
  • Resources/config/routing 目录中的 YAML 文件从 SyliusWebBundle 复制到我的包中。更改了 YAML 文件中的 SyliusWebBundle 引用,与上述类似。
  • app/config/config.yml 添加了新部分,特别是这部分(旨在覆盖 Sylius 中 addCheckoutSection() 的内容\Bundle\CoreBundle\DependencyInjection\Configuration):

     sylius_core:
        # ...
        checkout:
            steps:
                security:
                    template: 'WebBundle:Frontend/Checkout/Step:security.html.twig'
                addressing:
                    template: 'WebBundle:Frontend/Checkout/Step:addressing.html.twig'
                shipping:
                    template: 'WebBundle:Frontend/Checkout/Step:shipping.html.twig'
                payment:
                    template: 'WebBundle:Frontend/Checkout/Step:payment.html.twig'
                finalize:
                    template: 'WebBundle:Frontend/Checkout/Step:finalize.html.twig'
    

在更改 Resources/config/routing/frontend 目录中的 YAML 文件中的所有默认 Controller 引用方面,我还有很多工作要做,但在我继续之前,我需要知道如果这是正确的方法,或者如果我走错了路。

我的目标是使用新版本的 Sylius 使商店尽可能容易升级,因此我想避免修改核心库文件,而是根据需要使用我自己的包有选择地覆盖功能。

但是,除非我遗漏了什么,否则 Sylius 目前似乎还没有“适应”这种方法。

事实上我不得不覆盖多个包的功能(CoreBundle 以及 WebBundle,根据上面的 YAML 部分),这让我暂停了我当前的方法。我希望有人能够引导我朝着正确的方向前进。

最佳答案

你可以覆盖 app 文件夹中的所有模板(这是 symfony 的一部分,适用于所有包):

app/Resources/SyliusWebBundle/views/Frontend/Checkout/Step/
   security.html.twig
   addressing.html.twig
   shipping.html.twig
   payment.html.twig
   finalize.html.twig

关于php - 适当的开发。覆盖 Twig 模板的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27813554/

相关文章:

php - 使用 PDO 获取单个返回值

PHP die() 与 echo

php - yii phpunit 测试覆盖率 View

forms - Symfony3 多次渲染相同的表单

php - 西利乌斯 API : Carts conflict on login

symfony - 安装 Sylius - Symfony2 开源电子商务

php - 2 个导航栏,其中一个用于内容区域。如何有效地更改 navbar#2 的内容和 navbar#1 上链接的内容

Symfony StreamedResponse 服务器发送事件阻止请求

php - 每个 Action 中的线条相同 - 我应该让他们这样做吗? - 交响乐2

symfony - 在 Sylius 中安装 Fixtures - Symfony2