【问题标题】:Symfony2 service structureSymfony2 服务结构
【发布时间】:2012-04-26 03:00:02
【问题描述】:

我很难理解 Symfony2 服务。我到处都读过很多东西(包括 SO 中的一些),但似乎没有一个能完全解释它。

假设我有一个包 A 和一个单独的包 B。我希望 B 功能可用于 A 包。我想将 B 注入到服务容器中,以便 A 能够使用它。

哪个包应该有一个服务目录?哪一个应该有配置文件?两者都需要吗?扩展在哪里?为什么?

【问题讨论】:

    标签: php symfony soa


    【解决方案1】:

    Bundle B 需要一个扩展才能加载它的 services.xml 文件。

    Bundle B 需要它的 services.xml 文件中的一个条目来定义服务。

    Bundle B 将具有包含您的服务类的 Services 目录,该类公开了所需的功能。

    Bundle A 不需要任何特殊的东西。它将能够使用容器访问Bundle B所暴露的服务。只需要知道服务ID即可。

    在您提供一些服务之前,这会让人感到困惑。

    【讨论】:

    • 谢谢,现在有点意思了。即使我还没有测试,这是迄今为止我读过的最有效的解释(如果它是正确的)。
    【解决方案2】:

    首先阅读这两个问题和我对它们的回答:

    假设您谈论的是特定于应用程序的捆绑包,我建议您只使用一个捆绑包并将服务排除在外。然后,您可以通过多种方式注册您的服务:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-04
      • 2020-05-12
      • 2012-10-21
      • 2013-02-27
      • 2017-03-20
      相关资源
      最近更新 更多