Php 找不到Symfony升级3.3至3.4服务
正在尝试将项目从Symfony 3.3升级到3.4。我已经用deptencies完成了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
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);
}
}
}
相反,将您公开的服务限制为您实际需要的服务