【发布时间】:2016-03-31 20:47:32
【问题描述】:
这似乎应该是最基本的事情,但我找不到任何信息。如果 bundle 定义了多个服务,我如何用自己的服务覆盖单个服务?
例如,如果我有一个已定义服务的捆绑包,该捆绑包的另一个服务正在使用该捆绑包,因为它实现了某些接口:
myapp_user.user.factory:
class: MyApp\UserBundle\User\UserFactory
arguments: ["@myapp_user.user.config_manager"]
我想用我自己的来覆盖这个服务,就像这样:
myapp_user.user.factory:
class: MyApp2\UserBundle\User\UserFactory
arguments: ["@myapp_user.user.config_manager"]
我认为它应该很简单,整个容器的想法不就是 - 能够轻松切换服务/依赖项吗?但是我找不到任何关于它的信息。有关于创建“父”包和覆盖“具有服务定义的文件”的信息,但没有关于单个服务的信息。我错过了什么吗?我真的不想使用“父捆绑包”来用我自己的服务替换一项服务。
【问题讨论】:
-
它应该可以工作,但是你必须在第一个之后声明你的自定义服务,你的包必须在第一个之后加载。
标签: symfony service dependency-injection