私の要件は、ユーザーエージェントの変更セッションが破棄され、新しいセッションを開始する必要がある場合です。しかし、start() の前に destroy が呼び出された場合、Zend_Session::start() は例外をスローします。
try {
Zend_Session::start();
} catch (Zend_Session_Exception $e) {
Zend_Session::destroy(true);
Zend_Session::start(); // breaking here
Zend_Session::regenerateId();
}
Zend_Session::registerValidator(new Zend_Session_Validator_HttpUserAgent());
例外:
メッセージ「セッションはこのリクエスト中に明示的に破棄されました。再起動の試行は許可されていません。」という例外がキャッチされませんでした。library\Zend\Session.php:431 内
編集:
その理由は、2 番目の start() コマンドがその要求で既に呼び出されている場合、黙って無視されるためです。問題を投稿しました。彼らがそれを受け入れることを願っています..
if (self::$_sessionStarted) {
return; // already started
}