我很难理解Symfony2服务。我到处都读过很多东西(包括SO中的一些东西),但似乎都没有完全解释它。
假设我有一个捆绑包A和一个单独的捆绑包B.我希望A捆绑包可以使用B功能。我想在服务容器中注入B,以便A能够使用它。
哪个捆绑包应该有一个Services目录?哪一个应该有配置文件?如果需要的话?扩展在哪里?为什么呢?
答案 0 :(得分:3)
Bundle B将需要一个Extension才能加载它的services.xml文件。
Bundle B将需要在其services.xml文件中输入一个条目来定义服务。
Bundle B将拥有包含服务类的Services目录,该服务类公开了所需的功能。
捆绑A不需要任何特殊的东西。它将能够使用容器来访问Bundle B公开的服务。只需要知道服务ID。
在你提供一些服务之前,它会让人感到困惑。
答案 1 :(得分:1)
首先阅读这两个问题及其答案:
假设您正在讨论特定于应用程序的捆绑包,我建议只使用一个捆绑包并保留服务。然后,您可以通过多种方式注册您的服务:
config.yml
,AppBundle
或JMSDiExtraBundle
的注释 - 这是我个人喜欢的。