Ошибка проверки Symfony Cache: невозможно объявить класс Response после использования setPublic ()

Я играю с Проверка HTTP-кэша — проверка с заголовком ETag

В моем контроллере у меня есть:

// ... 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;

При первой загрузке страницы после удаления кэша контроллер запускается и все в порядке. Но, начиная со второго раза, я просто получаю:

FatalErrorException в строке classes.php 3353: Ошибка: невозможно объявить
Класс Symfony \ Component \ HttpFoundation \ Response, потому что имя
Уже в использовании

эта проблема есть, как только я использую $response->setPublic();

В чем причина проблемы? Я делаю что-то не так?

2

Решение

Я нашел это, может быть, это может помочь вам https://github.com/contao/core-bundle/issues/643

Они предлагают удалить линию $kernel->loadClassCache(); от app.php,

Это попытка ускорения, которая предварительно загружает классы, которые необходимы в
большинство запросов. Это, однако, устарело в PHP7.0 и маргинально в PHP
5.6 — следовательно, это сохранить, чтобы удалить его.

РЕДАКТИРОВАТЬ: я удалил строку $kernel->loadClassCache(); и ошибок больше нет и http кеш работает нормально.

Кроме того, вот дополнительная информация: https://github.com/symfony/symfony/issues/20668

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]