connectDB(config::Inst()); # 建立链接,传入配置文件 } return $a; } /** * @return CRedisUtil 获取全局MEM单例 */ function gMem() { static $cmem = null; if ($cmem == null) { $cmem = new CRedisUtil(); $nosql = config::Inst()->nosql; $cmem->conn($nosql->host, $nosql->port, $nosql->pwd); } return $cmem; } /** * 简化提取全局变量的写法 * @return globalsettings */ function glc() { return GameConfig::globalsettings(); } /** * @return loyalsoft\Req 全局访问 */ function req() { return Req::Ins(); } default_timezone(); # 全局范围内启用默认时区 中国时区 $zoneid = "1"; # 定义全局变量zoneid /** * 从QueryString初始化分区Id * @global type $zoneid */ function InitZoneId() { global $zoneid; if (isset($_REQUEST['zoneid'])) { $zoneid = $_REQUEST['zoneid']; # 从参数提取到全局变量. } } /** * 直接返回错误resp并结束运行 * @param type $err * @param type $msg */ function Err($err, $msg = "") { if (ErrCode::ok === $err) { CLog::err("Err()方法的参数err==ok, 那你还调个蛋的Err()!!!"); } if (Index::$isDebugging) { # 组织调试信息 Index::$debugMsg .= "
发生错误逻辑中断($err):$msg"; # 错误信息用红色显示 Index::$debugMsg .= '
内存分配:' . number_format(memory_get_peak_usage() / 1024) . 'kb,'; Index::$debugMsg .= '内存占用:' . number_format(memory_get_usage() / 1024) . 'kb'; # 内存使用数量(kb) $msg = ""; } CLog::err("发生错误直接中断逻辑执行."); if (is_string($err)) { # 防御Err中直接输入字符串的货 $msg = $err . $msg; CLog::err($msg); $err = ErrCode::err_innerfault; } exit(Index::OverPass(Resp::err($err, $msg))); # 直接返回错误信息 } /** * 断言快速访问 * @param bool $condition * @param int/str $err */ function my_Assert($condition, $err) { DebugHelper::assert($condition, $err); } /** * 功能已过期 */ function absolute() { return Err(ErrCode::err_method_obsoleted); } /** * 带换行符输出 */ function echoLine() { $cli = (php_sapi_name() === 'cli'); $args = func_get_args(); echo implode(" ", $args) . ( $cli ? PHP_EOL : "
"); # CLI下追加\n, html下追加
} if (GAME_ONLINE) { # 设置脚本执行的超时时间 set_time_limit(25); # 外网不超过25秒 } else { set_time_limit(10); # 内网不超过5秒 }