Php Sylius:覆盖BackendMenuBuilder
我开始开发一个基于Sylius的项目,安装后我想定制后端仪表板。当Sylius使用服务时,我发现BackendMenuBuilder是一个名为“Sylius.menu\u builder.backend”的服务。考虑到这一点,通过谷歌搜索,我在AppBundle/Resources/config中编辑了我的“services.yml”,并在下面几行:Php Sylius:覆盖BackendMenuBuilder,php,symfony,sylius,Php,Symfony,Sylius,我开始开发一个基于Sylius的项目,安装后我想定制后端仪表板。当Sylius使用服务时,我发现BackendMenuBuilder是一个名为“Sylius.menu\u builder.backend”的服务。考虑到这一点,通过谷歌搜索,我在AppBundle/Resources/config中编辑了我的“services.yml”,并在下面几行: services: sylius.menu_builder.backend: class: AppBundle\Menu
services:
sylius.menu_builder.backend:
class: AppBundle\Menu\Backend\BackendMenu
我在“AppBundle\Menu\Backend”中创建了一个新类“BackendMenu”,将其称为“default”“西流士服务。我在第一次尝试时出现了一些错误,但在我可以用这种方式覆盖默认服务之后。这样做对吗?对于我不想使用默认版本的任何新服务,是否应在“services.yml”中插入此新参数?我想知道这一点,因为我认为在Sylius平台上开发一个中型/大型项目可能是一个方便的问题。相反,覆盖整个服务定义,您只需提供自己的类参数。例如:
parameters:
sylius.menu_builder.backend.class: AppBundle\Menu\Backend\BackendMenu
然后,您不需要重新声明所有参数(如果有)
使用
ComplierPass执行此操作的其他方法是的,如果不想更改服务的整个定义(注入),则只需要重写类