我开始开发一个基于sylius的项目,在安装后我想定制后端仪表板。当sylius使用服务时,我发现backend menu builder是一个名为“sylius.menu-builder.backend”的服务。考虑到这一点,我在appbundle/resources/config中编辑了我的“services.yml”,并放上了以下几行:
services:
sylius.menu_builder.backend:
class: AppBundle\Menu\Backend\BackendMenu
我在“appbundle\menu\backend”中创建了一个新类“backendmenu”,改为调用“default”sylius服务。我在第一次尝试时出现了一些错误,但在我可以用这种方式覆盖默认服务之后。这样做对吗?对于任何我不想使用默认版本的新服务,我应该在“services.yml”中插入这个新参数吗?我想知道这是因为我认为在sylius平台上开发一个中型/大型项目可能是一个很方便的问题。
最佳答案
代替覆盖整个服务定义,您可以只提供自己的类参数器。例子:
parameters:
sylius.menu_builder.backend.class: AppBundle\Menu\Backend\BackendMenu
那么你就不需要重新声明所有的参数(如果有的话)。
用
ComplierPass
-http://symfony.com/doc/current/bundles/override.html#services-configuration实现此目的的其他方法关于php - Sylius:覆盖BackendMenuBuilder,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41060068/