Допустим, веб-приложение хранит объект класса My_Object в сеансе php под именем «myobject».Когда я открываю другое приложение php, где этот класс не существует, Zend_Session :: start () выдает исключение при попытке десериализации My_Object.
Таким образом, мне нужно очистить переменную $ _SESSION, чтобы избавиться от 'MyObject.Но чтобы очистить переменную $ _SESSION, мне сначала нужно вызвать session_start (), и, как только она была вызвана, Zend_Session :: start () выдает следующее исключение:
Неполученное исключение 'Zend_Session_Exception' with message 'Сессия уже была запущена с помощью session.auto-start или session_start () '
Это выбрасывается, даже если я вызываю session_destroy () перед вызовом Zend_Session :: start ().
Может ли кто-нибудь помочь мне в этом?
Заранее спасибо,
Эрик.
РЕДАКТИРОВАТЬ: Чтобы добавить пояснения, вот функция, которую я вызываю на моем плагине инициализатора контроллера:
protected function _initSession() {
try {
session_start();
unset($_SESSION['myobject']);
session_destroy();
Zend_Session::start(); // throws an exception !!!
}
catch (Exception $e) {
echo $e; exit;
}
}
РЕДАКТИРОВАТЬ 2:
Чтобы добавить дополнительные пояснения, вот исключение, которое выдает Zend_Session :: start (), когда он встречает неизвестный класс:
Предупреждение: include_once (My / Object.php): не удалось открыть поток: нет такого файла или каталога в /usr/local/zend/share/ZendFramework/library/Zend/Loader.php в строке 146
Теперь, когда я написал это, яИнтересно, смогу ли я начать сеанс до запуска автозагрузчика Zend ...