Кажется, что ob_end_flush()
вызывает неявное закрытие сессии.Это намеренное поведение?Я предполагаю, что ответ «да», но могу ли я как-то предотвратить это?
Вот описание проблемы, с которой я столкнулся.Я использую фреймворк, который использует пользовательский обработчик сессии, я не думаю, что это имеет значение в этом случае, но только для информации.Фактическая проблема возникает, когда в какой-то момент в фреймворке вызывается код ob_end_flush()
.Регистрируя вызовы пользовательских обработчиков сеансов, я замечаю, что в этом случае вызывается запись и закрытие сеанса.Это настолько неявно, что я даже не могу отладить его с помощью Zend Debugger, только записать его в журнал error_log.Итак, после ob_end_flush()
взаимодействие с сеансом все еще продолжалось (я знаю, что это может быть неправильно, но все же это так), и в той ситуации, когда предыдущий сеанс уже закрыт, начинается новый сеанс с новым идентификатором.Новый сеанс имеет новый идентификатор, потому что cookie не установлен в данный момент.Итак, в результате я получил две отдельные сессии с двумя разными идентификаторами.
Лучшим решением для меня, вероятно, было бы отключение этого неявного ob_end_flush()
поведения, но я приму любой ответ.
Заранее спасибо.