1

我刚刚将现有的 Symfony 项目从 3.3.13 升级到 3.4。

我修改了我的包的 services.yml 文件以默认公开服务:

services:
    _defaults: { public: true }
...

当我尝试获取()该文件中定义的任何服务并且控制台调试时,Symfony 抛出 ServiceNotFoundException 异常:容器不显示任何服务,即使使用 --show-private 也不显示。

我知道正在处理文件是因为引入了错误(例如,打破缩进),在预热缓存时会引发错误。

我已经尝试删除默认设置并以相同的结果公开特定服务。

该文件是 src/SiteBundle/Resources/config/services.yml

4

1 回答 1

0

因为自 Symfony 3.4 起所有服务默认都是私有的

不仅是您的配置中的那些,还包括所有第 3 方和其他配置中的那些。



如果您需要测试私有服务,这里有一篇文章是 如何在 Symfony 中测试私有服务

于 2018-05-18T18:24:30.227 回答