Настройка параметров для службы внедрения зависимостей Symfony2 - PullRequest
2 голосов
/ 09 ноября 2011

Кажется, это очень простой вопрос, но я не могу найти ответ (возможно, я думаю в неправильном направлении):

Мои сервисы определены в файле YML.

PurchaseService:
class: Application_Service_Doctrine_PurchaseService  
calls:
- [ setPurchaseRepository, [ @purchase.repository] ]

purchase.repository:      
class: Application_Repository_Doctrine_PurchaseRepository

archive.repository:      
class: Application_Repository_Doctrine_ArchiveRepository

В определенном случае я хочу добавить archive.repository вместо purchase.repository. Как? (Примечание: я не использую полную платформу Symfony2, просто контейнер DI в проекте Zend Framework)

1 Ответ

1 голос
/ 09 ноября 2011

Вы могли бы просто определить службу под вторым именем?

ArchiveService:
  class: Application_Service_Doctrine_PurchaseService
  calls:
    - [ setArchiveRepository, [@archive.repository] ]

Тогда ваш клиентский код наверняка будет знать, какая служба ему нужна? Вы могли бы определить, какой сервис вытащить из DIC в фабричный класс (или использовать управляющий оператор, который соответствует вашим потребностям)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...