예제 #1
0
 /**
  * Обновление данных сессии
  * Важный момент: сессию обновляем в кеше и раз в 10 минут скидываем в БД
  */
 protected function UpdateSession()
 {
     $this->oSession->setDateLast(date("Y-m-d H:i:s"));
     $this->oSession->setIpLast(func_getIp());
     if (false === ($data = $this->Cache_Get("user_session_{$this->oSession->getUserId()}"))) {
         $data = array('time' => time(), 'session' => $this->oSession);
     } else {
         $data['session'] = $this->oSession;
     }
     if (!Config::Get('sys.cache.use') or $data['time'] < time() - 60 * 10) {
         $data['time'] = time();
         $this->oMapper->UpdateSession($this->oSession);
         $this->Cache_Clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array('user_session_update'));
     }
     $this->Cache_Set($data, "user_session_{$this->oSession->getUserId()}", array(), 60 * 60 * 24 * 4);
 }
예제 #2
0
 /**
  * Обновление данных сессии
  * Важный момент: сессию обновляем в кеше и раз в 10 минут скидываем в БД
  */
 protected function UpdateSession()
 {
     $this->oSession->setDateLast(F::Now());
     $this->oSession->setIpLast(F::GetUserIp());
     $sCacheKey = "user_session_{$this->oSession->getUserId()}";
     // Используем кеширование по запросу
     if (false === ($data = E::ModuleCache()->Get($sCacheKey, true))) {
         $data = array('time' => time(), 'session' => $this->oSession);
     } else {
         $data['session'] = $this->oSession;
     }
     if ($data['time'] <= time()) {
         $data['time'] = time() + 600;
         $this->oMapper->UpdateSession($this->oSession);
     }
     E::ModuleCache()->Set($data, $sCacheKey, array('user_session_update'), 'PT20M', true);
 }