2016-12-20 12 views
2

Я играю с HTTP Cache Validation - Validation with the ETag HeaderSymfony кэш Ошибка проверки: Невозможно объявить класс 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; 

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

FatalErrorException in classes.php line 3353: Error: Cannot declare class Symfony\Component\HttpFoundation\Response, because the name is already in use

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

Что вызывает проблему? Я что-то делаю неправильно?

+0

У меня аналогичная проблема. Я не могу понять, что вызывает ошибку. Моя ошибка: «Невозможно переопределить класс Symfony \ Component \ HttpFoundation \ ResponseHeaderBag в/... var/cache/prod/classes.php'. Проблема исчезла, когда я комментирую '$ kernel = новый AppCache ($ kernel);' inside 'app.php', но это не решение:/ –

+0

Нет, это не так, но вы заставили меня чувствовать себя не в одиночку :) – ShinDarth

ответ

1

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

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

It is a speedup attempt which preloads classes which are needed in most requests. This is however obsolete in PHP7.0 and marginal in PHP 5.6 - therefore it is save to remove it.

EDIT: Я удалил строку $kernel->loadClassCache(); и нет больше ошибок и кэш HTTP работает нормально.

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

+0

спасибо за ваш ответ, но, к сожалению, он не решает проблему. Вместо этого он изменяет ошибку на: '' ContextErrorException в строке RequestDataCollector.php 128: Примечание: Неопределенное смещение: 0'' – ShinDarth

+0

Какая у вас версия Symfony? –

+0

symfony 3.2.0 на php 7.0.9 – ShinDarth