2016-12-09 1 views
3

Я начинаю разработку проекта на основе Sylius, и после установки я хочу настроить панель инструментов Backend. Когда Сайлиус работает с сервисами, я обнаружил, что BackendMenuBuilder - это сервис под названием «sylius.menu_builder.backend». Имея это в виду и некоторые прибегая к помощи я редактировал мой «services.yml» в AppBundle/Resources/конфигурации»и поставить этой строки:Sylius: Overwrite BackendMenuBuilder

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

Я создал новый класс„BackendMenu“в„AppBundle \ Menu \ Backend“ вместо этого вызывается «служба по умолчанию» Sylius. У меня есть некоторая ошибка в моих первых попытках, но после того, как я смог перезаписать службу по умолчанию таким образом. Правильно ли это сделать? Для любой новой службы, которую я хочу не использовать версию по умолчанию, следует ли вставлять этот новый параметр в свой «services.yml»? Интересно, потому что я думаю, что разработка среднего/большого проекта над платформой Sylius и, возможно, это может быть удобной проблемой.

ответ

2

Вместо перезаписи всего определение услуги Вы можете просто предоставить вам r собственный параметр класса. Пример:

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

Затем вам не нужно обновлять все аргументы (если таковые имеются).

Другие способы это сделать это с помощью ComplierPass - http://symfony.com/doc/current/bundles/override.html#services-configuration

+0

Да, вы должны переопределить только класс, если вы не хотите, чтобы изменить весь определение (инъекции) к вашим услугам –

 Смежные вопросы

  • Нет связанных вопросов^_^