Php 找不到Symfony升级3.3至3.4服务

Php 找不到Symfony升级3.3至3.4服务,php,symfony,Php,Symfony,正在尝试将项目从Symfony 3.3升级到3.4。我已经用deptencies完成了composer更新symfony/symfony,并将public:false添加到我的services.yml文件中 现在,当我运行PHPUnit测试时,出现以下错误: Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException : The service "templating.loader.cache" has a d

正在尝试将项目从Symfony 3.3升级到3.4。我已经用deptencies完成了
composer更新symfony/symfony,并将
public:false
添加到我的
services.yml
文件中

现在,当我运行PHPUnit测试时,出现以下错误:

Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException : The service "templating.loader.cache" has a dependency on a non-existent service "templating.loader.wrapped".

你知道为什么会这样吗?我根本找不到任何谷歌搜索结果或任何Symfony文档参考…

除非你为私人服务准备了代码,否则你不应该使用public:false标签。用于将服务标记为私有的。可能在代码的某个地方有类似于
$var=$container->get('example')调用公共服务。您可以阅读更多信息。

发现问题是由于在编译器传递类中将
templating.loader.cache
的定义重写为
public
而导致的,以允许在功能测试期间进行访问

根据此处的代码:

tl;dr不这样做:

final类TestCompilerPass实现CompilerPass接口
{
/**{@inheritardoc}*/
公共函数进程(ContainerBuilder$container)
{
foreach($container->getDefinitions()作为$id=>$definition){
$definition->setPublic(true);
}
}
}
相反,将您公开的服务限制为您实际需要的服务