В моем приложении PHP я определил класс User_class (с некоторыми свойствами и некоторыми методами, включая __construct()
а также __destruct()
). Я создал объект из этого класса, и чтобы использовать его учетные данные, я сохранил этот объект в $_SESSION
супер глобальный с использованием метода сериализации. _destruct()
Метод запускает несколько частных методов, включая log_out.
Мой вопрос: истечение сеанса уничтожает объект?
Четкий ответ: нет, это не так.
Объект сохраняется в сеансе в виде строки, представляющей текущие значения всех свойств, но не (!) Каких-либо методов, констант или деструкторов.
Когда сеанс истекает и сборка мусора активна, оставшиеся сеансы в хранилище сеансов просто удаляются.
Чтобы явно отключить пользователя после окончания сеанса, вам необходимо зарегистрировать собственный обработчик сеанса.
Кстати: для того, чтобы сохранить объект в $_SESSION
вар, нет необходимости сериализировать это явно. Просто $_SESSION['obj'] = $myObj;
достаточно — и ускоряет вещи чрезвычайно.
Других решений пока нет …