Exemple #1
0
 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));
     }
 }
Exemple #2
0
 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);
 }