设置Symfony2依赖注入服务的参数

时间:2011-11-08 21:03:56

标签: php dependency-injection symfony

似乎是一个非常基本的问题,但我找不到答案(可能我在想错误的方向):

我的服务是在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容器)

1 个答案:

答案 0 :(得分:1)

你可以用第二个名字定义服务吗?

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

然后您的客户端代码肯定会知道它需要哪个服务?您可以将从DIC中提取的服务分配到工厂类中(或使用控制语句,哪些适合您的需要)?