2012-07-05 2 views
3

Я разрабатываю универсальное приложение на PHP, которое динамически настраивается для многих клиентов.Хорошая практика сохранения объекта в сеансе?

У меня есть класс client, где я загружаю стиль и настройки для клиента.

Мой вопрос:

Это хорошая практика, чтобы сохранить этот объект в сессии? (Я думаю, что это лучшее решение вместо создания объекта на каждой странице, для чего потребуется множество запросов mysql.

ответ

3

Есть несколько вещей, которые вам нужно учитывать во время сеанса.

  1. Нельзя хранить большие значения в сеансе. Я думаю, что это не проблема в вашем случае, поскольку предпочтения обычно достаточно малы.

  2. Когда вы храните объект в сеансе. вы не сможете получать обновления в реальном времени. например, позволяет говорить, что один и тот же пользователь регистрируется с использованием двух отдельных браузеров и/или машин и модифицирует настройки в одном. в этом случае у другого нет обновленной настройки. это не большая проблема, но зависит от ваших требований.

Я не вижу никакой другой проблемы здесь. на самом деле его действительное и хорошее решение для хранения небольших значений в сеансе и избежания запросов db.

+0

Информация о клиенте никогда не меняется и не ко многим данным на клиента. Спасибо! – Tony

0

Если это то, что не изменится и просто приведет к постоянному вызову запросов MySQL снова и снова то да, что это хорошая идея.

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

если возвращаемые значения будут меняться постоянно, было бы лучше не, но сохраните, какие значения вы можете в сеансе.

+0

Информация о клиенте никогда не изменяется и не ко многим данным на клиента. Я не могу думать в другом варианте. Спасибо! – Tony

0

Я думаю, что сессия умрет, когда клиент закроет браузер. Если вы храните его в cookie (Loaded client)? это не хорошо для безопасности.

Когда вы храните мини-данные в сеансе (Загруженный сервер). Это означает, что вы используете некоторую память на сервере. Что происходит в то время, когда у вас много клиентов?

Таким образом, соединение с базой данных должно быть уничтожено в конце процесса для каждой страницы. Не беспокойтесь, чтобы использовать его.

Смежные вопросы