Раздел вопрос-ответ Fatal error: Cannot redeclare class SessionHandlerInterface php 5.4

Проект на symfony 2. На php 5.3 работает без проблем.

Переключаю проект на php 5.4, используется все те же самые файлы. При входе на главную страницу сразу фатальная ошибка с текстом "Cannot redeclare class SessionHandlerInterface". На других страницах тоже:

Fatal error: Cannot redeclare class SessionHandlerInterface

php --version
PHP 5.4.20-1~dotdeb.0 (cli) (built: Sep 21 2013 22:24:04) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

Из-за чего ошибка и как исправить?

share

1 ответ

Действительно, такая ошибка может возникнуть. У большинства она решается простой очисткой кэша:

app/console cache:clear

Каковы причины проблемы?

В php 5.4 уже имеется класс с точно таким же названием SessionHandlerInterface, см. документацию http://www.php.net/manual/en/class.sessionhandlerinterface.php.

Если простая очистка кэша не помогает, нужно очистить production cache:

php app/console cache:clear --env=prod --no-debug

Или dev кэш, смотря в каком режиме вы работаете:

php app/console cache:clear --env=dev --no-debug

Если очистка кэша не помогла, то проверьте, объявлен ли namespace в интерфейсе SessionHandlerInterface. В файле интерфейса должно быть что то вроде этого:

namespace app\cache\dev;

 

Добавить комментарий
    как минимум 5 символов

    icon Вход в систему

    зарегистрироваться