err = ErrCode::ok;
$resp->result = $ret == null ? ObjectInit() : $ret; # 避免出现null
$resp->ts = time();
// $resp->tag = ObjectInit();
$resp->SN = req()->SN;
$resp->DN = isset(req()->game->stVer) ? req()->game->stVer : -1;
return $resp;
}
/**
* 产生服务端错误应答数据
* @param Req $req
* @param int $err
* @param string $msg 【可选】附加信息
* @return \Resp
*/
public static function err($err, $msg = "") {
$resp = new Resp();
$resp->err = $err;
$resp->result = ObjectInit();
$resp->ts = time();
$resp->errmsg = $msg;
// $resp->tag = ObjectInit();
// self::addTag('errmsg', $msg);
$resp->SN = req()->SN;
return $resp;
}
/**
* 实例方法, 将静态变量上累积的数据转移到自己身上
*/
public function AfterProc() {
// $this->tag = arr2obj(array_merge((array) $this->tag, (array) self::$ext_tag)); # 合并附加tags
// self::$ext_tag = ObjectInit();
$this->events = self::$ext_events; # 合并附加events
self::$ext_events = array();
if (count($this->events) > 0) { # 对于出现event的情况下自动附带store到客户端.
if (is_array($this->result)) {
if (!array_key_exists('task', (array) $this->result)) {
//$this->result['task'] = ctx()->task;
}
} else {
if (!array_key_exists('task', (array) $this->result)) {
//$this->result->task = ctx()->task;
}
}
}
if (count(CRedisUtil::$caller_counter) > 0) {
// echoLine("Redis api called Number: " . count(CRedisUtil::$caller_counter));
// echoLine(implode("
", CRedisUtil::$caller_counter));
}
}
//
static $ext_events = array();
public static function AddEvent($name, $arg1, $arg2) {
self::$ext_events[] = array(
'name' => $name,
'arg1' => is_null($arg1) ? ObjectInit() : $arg1,
'arg2' => is_null($arg2) ? ObjectInit() : $arg2
);
}
//
//
// static $ext_tag = null;
//
// /**
// * 向返回值添加附加数据
// * @param string $name
// * @param any $value
// */
// public static function addTag($name, $value) {
// if (null == self::$ext_tag) {
// self::$ext_tag = ObjectInit();
// }
// self::$ext_tag->$name = $value;
// }
//
}