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; // } // }