find($userid, $user)) { throw new Zend_Exception(); } $storage = Zend_Auth::getInstance()->getStorage(); $storage->clear(); $storage->write(array('user' => $user->id)); Zend_Session::rememberMe(); // zend default expiration delay is 2 weeks. Ok, use that value } static public function logout() { Zend_Session::start(); Zend_Session::destroy(); } static public function user() { try { $sessionStorage = Zend_Auth::getInstance()->getStorage(); } catch(Exception $e) { return null; } $sessionData = $sessionStorage->read(); if ($sessionStorage->isEmpty()) { return null; } $id = $sessionData['user']; if (!isset($id)) { return null; } if (isset (self::$cache[$id])) { return self::$cache[$id]; } $userMapper = new Syj_Model_UserMapper(); $user = new Syj_Model_User(); if ($userMapper->find($id, $user)) { self::$cache[$id] = $user; return $user; } else { self::logout(); return null; } } }