/** * 获取用户对象 * @param $userId * @return UserClass */ public function getUserClass($userId = null) { static $userClasses = array(); if (is_null($userId)) { //获取当前登陆用户 if (is_numeric(self::$_curLoginUserId) && is_string(self::$_curLoginUser) && is_string(self::$_curLoginIp)) { //角色压力,避免重复解密cookie $userId = self::$_curLoginUserId; $user = self::$_curLoginUser; $ip = self::$_curLoginIp; } else { $param = $this->getC(config('USER_COOKIE_KEY')); loadCore('crypt/Des'); $param = Des::decrypt($param, config('USER_KEY')); list($userId, $user, $ip) = explode('|', $param); if (!is_numeric($userId) || !is_string($user) || !is_string($ip)) { //解析cookie失败,返回 false return false; } } } if (is_object($userClasses[$userId])) { return $userClasses[$userId]; } $fileClass = config('USERCLASS_PATH') . '/' . substr(md5($userId), 0, 1) . "/{$userId}.userclass"; if (!file_exists($fileClass)) { return false; } import('object/UserClass'); $userClass = file_get_contents($fileClass); $userClasses[$userId] = unserialize($userClass); return $userClasses[$userId]; }