Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Хранение объектов


Автор: Ortis 8.3.2012, 17:55
Всем привет! Тут на форуме есть пара тем о том где хранить созданные объекты, но я так и не понял как лучше? Поясняю:
Пользователь заходит на сайт под своим логином и паролем. Есть объект - экземпляр класса "пользователь", который хранит тип пользователя, его e-mail и дт. и т.п. Чтобы не нагружать БД и не загружать постоянно данные пользователя, когда он перейдет на другую страницу, требуется где-то хранить объект. Что же все-таки для этого лучше? Серелизовать поля объекта и хранить их в сессии, использовать патерн регистра, хранить объекты в файле? Как Вы решаете этот вопрос?

Автор: skyboy 8.3.2012, 18:48
чтоб передать данные между разными запросами(страницами) в пределах сессии пользователя, надо использовать:
1. некий идентификатор, который гарантированно будет сохраняться между запросами(кука)
2. хранилище данных - файл(файл обычный; файл, создаваемый механизмом сессий; файл, создаваемый СУБД) или другой ресурс(удаленный сервер Memcache или shared memory)
3. механизм для сохранения данных и восстановления(іerialize, json_encode и прочее)
итак, какой смысл уходить от "стандартного" механизма сессий? вроде ж, всё есть. чего тебе не хватает?
Цитата(Ortis @  8.3.2012,  16:55 Найти цитируемый пост)
использовать патерн регистра

и как он будет передаваться между запросами?

Автор: Ortis 9.3.2012, 12:56
Цитата(skyboy @ 8.3.2012,  18:48)
Цитата(Ortis @  8.3.2012,  16:55 Найти цитируемый пост)
использовать патерн регистра

и как он будет передаваться между запросами?

Через статические поля  методы. Но, врочем, это уже не важно. Спасибо за ответ.

Автор: skyboy 9.3.2012, 17:52
Цитата(Ortis @  9.3.2012,  11:56 Найти цитируемый пост)
Через статические поля  методы

без сериализации/сохранения в базу/файл статические поля "умрут" вместе с завершением обработки запроса. и при обработке следующего запроса(страницы) будут инициализироваться заново. так что реестр в данном случае может разве что выступать оберткой для механизма сессиий или другого метода сохранения данных.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)