public static function run($para = []) { self::init(); if (empty($para)) { return self::ERROR_PARA_EMPTY; } if (isset($para['url'])) { $tmp_url = explode('/', $para['url']); $first_key = end($tmp_url); if (is_numeric($first_key)) { array_pop($tmp_url); $second_key = end($tmp_url); return $second_key . '_' . $first_key; } if (!isset($para['data'])) { return self::ERROR_PARA_NO_URL; } if (isset($para['method']) && strtolower(trim($para['method'])) != 'get') { return self::ERROR_PARA_NOT_GET; } $data = []; if (isset($para['data']['page'])) { $data['page'] = $para['data']['page']; } if (isset($para['data']['pagesize'])) { $data['pagesize'] = $para['data']['pagesize']; } if (isset($para['data']['condition'])) { $data['condition'] = is_array($para['data']['condition']) ? XiiUtil::implodePlus('.', $para['data']['condition']) : $para['data']['condition']; } return $first_key . '_' . md5(XiiUtil::implodePlus('.', $data)); } else { $first_key = Yii::$app->controller->id; if (isset($para['condition']['id']) && !is_array($para['condition']['id'])) { return $first_key . '_' . $para['condition']['id']; } if (isset($para['page'])) { $data['page'] = $para['page']; } if (isset($para['limit'])) { $data['limit'] = $para['limit']; } if (isset($para['condition'])) { $data['condition'] = is_array($para['condition']) ? XiiUtil::implodePlus('.', $para['condition']) : $para['condition']; } return $first_key . '_' . md5(XiiUtil::implodePlus('.', $data)); } }
private static function generateToken($para) { self::$_whereStart = self::$_whereStart > 10 || self::$_whereStart < 0 ? 1 : (int) self::$_whereStart; if (self::$_useImplodePlus) { $_tmp = XiiUtil::implodePlus($para, ''); } else { $_tmp = implode('', $para); } $_token = self::doEncrypt($_tmp . self::$_privateKey); return substr($_token, self::$_whereStart, self::TOKEN_LENGTH); }