我开始基于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平台上开发一个中型/大型项目,也许这可能是一个方便的问题。
答案 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