Каков наилучший способ сохранить сеансы в базе данных? - PullRequest
0 голосов
/ 01 сентября 2010

Я планирую создать свои собственные функции обработки сеансов. Я хочу сохранить его в базе данных, но у меня есть некоторые сомнения.

  • это жизнеспособно или просто замедлит мое приложение?

  • мне нужно сохранять сессию после каждого set или я могу просто сохранить все сразу? потому что у меня была идея поместить эту функцию в метод деструктора класса. поэтому, когда программа завершится, она сохранит данные в базе данных.

    • но как я могу использовать для этого мой другой класс (класс базы данных), будучи уверенным, что он не будет уничтожен до класса сеанса?

    • если пользователь завершит соединение и приложение прекратит работу, деструктор все равно будет вызываться?

так, что вы, ребята, думаете? что вы предлагаете мне сделать?

Ответы [ 3 ]

1 голос
/ 01 сентября 2010

Я использую сеансы БД все время с Zend и Symfony, так что это определенно жизнеспособно, конечно, это будет стоить, но, скорее всего, ничего существенного.

Обычно эти обработчики работают таким образом, чтобы использовать session_set_save_handler таким образом, чтобы он работал как обычно, за исключением фактической вызываемой функции, которая записывает данные. Однако обратите внимание на предупреждения об уничтожении объекта.

0 голосов
/ 01 сентября 2010

Почему вы хотите постоянно хранить данные сеанса?Обычно люди используют разные обработчики сессий для ускорения приложения (мы используем memcache для сессий, потому что наше приложение довольно сложное и распределенное, и мы хотим, чтобы оно работало быстро).Я считаю это требование плохим дизайном приложения. Если вы хотите каким-то образом отслеживать своих посетителей, есть много способов сделать это лучше.Или вы используете сессию для вещей, для которых она не совсем предназначена / подходит.Конечно, я могу представить, что могут быть такие требования, просто я не думаю, что это так.

0 голосов
/ 01 сентября 2010

Да, обычно он будет немного медленнее, чем собственный обработчик сессий PHP, однако это не должно быть заметно. Это если у вас проблемы с блокировкой файлов (как в Windows)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...