Zend Auth заблокировал сеанс - PullRequest
       25

Zend Auth заблокировал сеанс

3 голосов
/ 21 сентября 2010

Я почти разочарован тем, как сеанс обработки Zend.

вот мой случай. я пишу плагин аутентификации, который всегда проверяет учетные данные пользователя, используя Zend_Auth. и когда вызывается функция hasIdentity из zend auth, он автоматически начинает сеанс.

и проблема возникает, когда у меня длинный процесс, который мне нужно выполнить. сеанс заблокирует запрос, пока запрос не будет завершен. я пытаюсь снять блокировку с помощью вызова Zend_Session :: writeClose (false), чтобы можно было выполнить другой запрос. но я не могу начать сеанс снова.

Это плохая реализация, если я пытаюсь возобновить остановленный сеанс?

есть только один сеанс от начала до завершения выполнения запроса?

спасибо.

PS: я могу сделать небольшой взлом здесь. в конце плагина auth я пишу собственную функцию php (session_write_close), и если любому контроллеру необходимо снова использовать сеанс, я начинаю его снова с (session_start).

1 Ответ

1 голос
/ 10 марта 2012

Самым простым решением этой проблемы является использование базы данных для хранения сеансов.Не нужно беспокоиться о блокировке файлов (как полагает АрнеРи).

Вариант 1

Используйте общее расширение PHP и небольшую настройку php.ini:

Youможет сохранить их в экспорте NFS или перекодировать session_set_save_handler, используя, например, бэкэнд SQL.Но нет более эффективного, масштабируемого, производительного и простого в развертывании решения, чем использование memcached…

Учебное пособие: http://www.dotdeb.org/2008/08/25/storing-your-php-sessions-using-memcached/

Опция 2

* 1015Zend way, через Zend_Session_SaveHandler_DbTable.

Примеры: Zend - Хранение данных сеанса в базе данных

...