如何防止Symfony 4服务覆盖?

如何防止Symfony 4服务覆盖?,symfony,symfony4,Symfony,Symfony4,我有base/config/services.yaml,它在我的Symfony 4.3项目中存储了许多服务。例如: My\Namespace\Service: - '@My\Namespace\Dependency' 出于测试目的,我在config/test/test_services.yaml中存储带有“test.”前缀的服务,以测试私有服务,使它们在测试环境中公开 test_services.yaml中声明的服务之一没有前缀。它的名称FQCN与services.yaml中定义的另一个名

我有base/config/services.yaml,它在我的Symfony 4.3项目中存储了许多服务。例如:

My\Namespace\Service:
  - '@My\Namespace\Dependency'
出于测试目的,我在config/test/test_services.yaml中存储带有“test.”前缀的服务,以测试私有服务,使它们在测试环境中公开

test_services.yaml中声明的服务之一没有前缀。它的名称FQCN与services.yaml中定义的另一个名称相同。它们具有相同类型的不同构造函数参数

Test one/config/Test_services.yaml模拟了返回装置数据的依赖项:

My\Namespace\Service:
  - '@My\Namespace\MockedDependency'

有没有一种方法可以防止服务覆盖在测试环境中的测试执行期间不将模拟服务替换为真实服务

这种情况的解决方案是创建services_test.yaml文件,并将其与services.yaml一起放在/config文件夹下

在这种情况下,symfony不会覆盖服务,而是在测试执行期间使用services_test.yaml中定义的服务