【发布时间】:2021-12-23 17:45:30
【问题描述】:
在我们的集成测试中,我们需要获取/设置一些服务,因此需要将它们公开。
我们目前所做的是以这种方式配置每个此类服务:
App\Infrastructure\Mail\Transport\SenderInterface:
public: '%services_are_public%'
而我们的test 环境是这样配置的:
parameters:
services_are_public: true
有没有办法在给定的环境中默认公开所有服务?
【问题讨论】:
-
您可以将 public: true 添加到 services.yaml 文件的 _defaults 部分。但是你真的应该问为什么你需要公开所有这些服务只是为了测试。您还应该查看特定于环境的 services.yaml 文件是如何加载的。不需要像 service_are_public 这样的参数。
-
没有必要,因为 4.1 there is a way to fetch private services from the container 在
test环境中。 -
@yivi 抱歉,还没有,希望这周!
标签: php symfony testing dependency-injection symfony5