Sylius:覆盖BackendMenuBuilder

时间:2016-12-09 12:03:37

标签: php symfony sylius

我开始基于Sylius开发项目,在安装过程之后我想自定义Backend Dashboard。当Sylius使用服务时,我发现BackendMenuBuilder是一个名为" sylius.menu_builder.backend"的服务。考虑到这一点和一些谷歌搜索,我编辑了我的" services.yml"在AppBundle / Resources / config"并把这句话:

services:
    sylius.menu_builder.backend:
         class: AppBundle\Menu\Backend\BackendMenu

我创建了一个新课程" BackendMenu"在" AppBundle \ Menu \ Backend"被称为"默认" Sylius服务。我在第一次尝试时遇到了一些错误,但在我以这种方式覆盖默认服务之后。这是正确的方法吗?对于我不想使用默认版本的任何新服务,我应该在我的" services.yml"中插入这个新参数?我不知道这是因为我认为在Sylius平台上开发一个中型/大型项目,也许这可能是一个方便的问题。

1 个答案:

答案 0 :(得分:2)

Instead overwriting whole service definition You can just provide Your own class paramerter. Example:

parameters:
    sylius.menu_builder.backend.class: AppBundle\Menu\Backend\BackendMenu

Then You don't need to redeclare all arguments (if there are any).

Other ways it to do this with ComplierPass - http://symfony.com/doc/current/bundles/override.html#services-configuration