Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Sylius:覆盖BackendMenuBuilder_Php_Symfony_Sylius - Fatal编程技术网

Php Sylius:覆盖BackendMenuBuilder

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

我开始开发一个基于Sylius的项目,安装后我想定制后端仪表板。当Sylius使用服务时,我发现BackendMenuBuilder是一个名为“Sylius.menu\u builder.backend”的服务。考虑到这一点,通过谷歌搜索,我在AppBundle/Resources/config中编辑了我的“services.yml”,并在下面几行:

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执行此操作的其他方法是的,如果不想更改服务的整个定义(注入),则只需要重写类