Php Symfony缓存验证错误:使用setPublic()后无法声明类响应

Php Symfony缓存验证错误:使用setPublic()后无法声明类响应,php,symfony,http-caching,Php,Symfony,Http Caching,我在和你玩 在我的控制器中,我有: // ... get the $data and $myObject somehow ... $response = $this->json($data); $response->setEtag($myObject->getDateModified()->format("Y-m-d H:i:s")); // getDateModified() returns a DateTime $response->setPublic();

我在和你玩

在我的控制器中,我有:

// ... get the $data and $myObject somehow ...

$response = $this->json($data);
$response->setEtag($myObject->getDateModified()->format("Y-m-d H:i:s"));  // getDateModified() returns a DateTime
$response->setPublic();

return $response;
删除缓存后第一次加载页面时,控制器运行,一切正常。但从第二次开始,我刚刚得到:

classes.php第3353行中的FatalErrorException:错误:无法声明 类Symfony\Component\HttpFoundation\Response,因为名称为 已在使用

只要我使用
$response->setPublic(),这个问题就会出现


是什么导致了问题?我做错什么了吗?

我发现了这个,也许它能帮到你

他们建议删除行
$kernel->loadClassCache()来自
app.php

这是一种加速尝试,它可以预加载中所需的类 大多数请求。然而,这在PHP7.0中已经过时,在PHP中则处于边缘状态 5.6-因此,将其移除是可行的

编辑:我删除了行
$kernel->loadClassCache()并且没有更多错误,http缓存工作正常


另外,这里还有额外的信息:

我有一个类似的问题。我想不出是什么导致了这个错误。我的错误是
无法在/…var/cache/prod/classes.php
中重新声明类Symfony\Component\HttpFoundation\ResponseHeaderBag。当我注释掉
$kernel=newappcache($kernel)时,问题就消失了
app.php
内部,但这不是一个解决方案:/n不是,但你让我感觉不那么孤独:)谢谢你的回答,但不幸的是,它没有解决问题。相反,它将错误更改为:
RequestDataCollector.php第128行中的ContextErrorException:注意:未定义的偏移量:0
您有什么Symfony版本?PHP7.0上的Symfony 3.2.0在版本3.2.0的第128行。在RequestDataCollector中,
$value=array_映射(函数($v){return isset($v[1])?$v:$v[0];},$value)但是,null头值存在问题,因此在3.2.1版中它是固定的-
$value=array_-map(函数($v){return isset($v[0])&&!isset($v[1])?$v[0]:$v;},$value)这个答案肯定会被@ShinDarth接受。它解决了你的问题。你还有另一个问题。