【问题标题】:Setting parameters for a Symfony2 Dependency Injection service为 Symfony2 依赖注入服务设置参数
【发布时间】:2011-11-08 21:03:55
【问题描述】:

似乎是一个很基础的问题,但我找不到答案(可能是我想错了方向):

我的服务是在 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 框架项目中的 DI 容器)

【问题讨论】:

  • 在哪种情况下要切换?

标签: php dependency-injection symfony


【解决方案1】:

您可以只用另一个名称定义服务吗?

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-11
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    相关资源
    最近更新 更多