似乎是一个非常基本的问题,但我找不到答案(可能我在想错误的方向):
我的服务是在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框架,只是Zend Framework项目中的DI容器)
答案 0 :(得分:1)
你可以用第二个名字定义服务吗?
ArchiveService:
class: Application_Service_Doctrine_PurchaseService
calls:
- [ setArchiveRepository, [@archive.repository] ]
然后您的客户端代码肯定会知道它需要哪个服务?您可以将从DIC中提取的服务分配到工厂类中(或使用控制语句,哪些适合您的需要)?