【问题标题】:symfony2 service container linking / clone service containersymfony2 服务容器链接/克隆服务容器
【发布时间】:2013-07-24 14:22:26
【问题描述】:

我想将一个服务容器链接到另一个已经存在的服务容器,例如:

acme.user.repository:
    class:            '%acme.user.repository.class%'
    arguments:        ['%acme.user.repository.argument%']
    factory_service:  doctrine.orm.entity_manager
    factory_method:   getRepository

现在我想将此服务链接到另一个服务,如下所示:

acme.admin.repository = acme.user.repository

所以,当我调用 $container->get('acme.admin.repository'); 时,我将得到与调用 $container->get('acme.user.repository'); 时相同的实例

【问题讨论】:

  • 请问您为什么要这样做?

标签: php symfony dependency-injection


【解决方案1】:

使用别名来避免某些问题:

services:

    acme.admin.repository:
        alias: acme.user.repository

【讨论】:

  • 谢谢。我应该指出,虽然这两个答案都可能适用于您的特定用例,但存在细微差别。例如, ./console container:debug 将显示别名,但不会显示第一个答案。您可能会遇到问题。
  • 对差异的很好解释
【解决方案2】:

我认为您可以通过这种方式链接您的服务:

acme.admin.repository: '@acme.user.repository'

【讨论】:

    猜你喜欢
    • 2015-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-23
    相关资源
    最近更新 更多