Я работаю на довольно сложном сайте PHP, хранящем много данных в $ _SESSION. Стандартный запрос включает вызов множества функций, которые обновляют $ _SESSION. Исключения могут быть выбрасываться в любой точке вычисления, оставляя данные в $ _SESSION непоследовательными.Как избежать сохранения сеанса PHP на диск при определенных обстоятельствах
Я должен избегать несогласованности, данные должны быть сохранены, только если вычисление достигнет конца. AFAIK PHP пишет сеанс в файл в конце скрипта, поэтому, если я могу помешать ему это сделать, я должен поддерживать согласованность и находить $ _SESSION именно так, как это было до разбитого вызова в следующий раз, когда я его назову, правильно?
Как я могу это сделать? Я читал, что session_set_save_handler() может быть правильным способом, но я не хочу реализовывать свой собственный способ хранения сеанса, я в порядке с PHP, я просто хочу быть в состоянии предотвратить он при определенных обстоятельствах (Исключения).
Решение проблемы путем сериализации копии всех данных в начале каждого вызова, чтобы иметь возможность в конечном итоге восстановить его, не является опцией из-за характеристик (данных достаточно много). Кроме того, у меня нет большого контроля над всей системой, поэтому я не могу выполнять «важный» рефакторинг кода.
[session_abort()] (http://php.net/manual/en/function.session-abort.php) или [session_reset()] (http://php.net/manual/en/function. session-reset.php), если вы находитесь на> = 5.6.0 –