| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Можно ли сохранить объект в сессии? |
| Автор: V0fka 17.6.2013, 20:13 |
| Привет! Нужно между перегрузками страницы сохранять информацию о конкретном объекте (о его состоянии). Пробовал объект записывать в сессию, но там получается в итоге другой уже тип. Подскажите, пожалуйста, как правильно поступить для решения этой задачи? |
| Автор: Arantir 17.6.2013, 20:34 |
| Что за объект? Объект какого-то Вашего класса? Какие в нем поля? Что значит "получается другой тип"? Объект читается из сессии уже после загрузки его класса (если у него есть класс)? Вообще, объекты без проблем сохраняются в сессию. Не сохраниться могут только объекты с явно несохраняемыми полями, например, с подключением к базе данных (переменная типа resource, возвращаемая функциями подключения к бд, открытия сокетов и т.п.) |
| Автор: Gromdron 17.6.2013, 20:40 |
| Ну, смотря какую информацию и о каком обьекте ? Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//object-id51bf441e6ccc19a453000002#findElement_E7045_51bf4a176ccc19e5730074b4_0 |
| Автор: Sanchezzz 17.6.2013, 21:04 | ||
| Дополню Arantir, Какие свойства класса сохранить можно через магический метод __sleep() который должен отдать результат в виде массива return array( 'prop1',prop2'); причем только public и как сказал Arantir если свойство класса содержит
class::__wakeup() вызывается при unserialize в нем можно реализовать например реконект к БД. Или использовать интерфейс Serializable(SPL),arrayObject(Spl) позволяет описать логику что сохранять и как. |