paydb; $dbname = $paydb->name; if ($zoneid != null && $zoneid == 999) { // 999区作为测试分区,充值等数据都是虚拟的,单独设置,其他区直接默认值 $dbname = "dhd_pay"; // "dhd_pay_test"; } $cpay->dbconn($paydb->host, $paydb->port, $paydb->user, $paydb->password, $dbname); return $cpay; } /** * get dao instance, * @version 2019年12月23日 经过梦幻星工场2一年多的使用, 未发现特别明显的bug. 决定侧重使用. -- 王刚 * @staticvar type $a * @return \dao 注意: dao并非什么好东西,只是一些改进尝试, 稳定性, 性能, 效率尚未得到证明.-gwang 2017.06.23 */ function daoInst() { static $a = null; if (is_null($a)) { $a = new dao(); # 结束请求的时候自动回收,无需主动写关闭代码 $a->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 Req 全局访问 */ function req() { return Req::Ins(); } /** * 初始化CV3工具, 主要用于腾讯专有支付平台, 比如QQ空间和应用宝. * 需要调用Close方法 * @return \CV3Util */ function CV3Init() { $cv3 = new CV3Util(); $cv3->v3conn(V3_HOST, V3_APPID, V3_APPKEY); return $cv3; } /** * 对象初始化 * @return type */ function ObjectInit() { return new \stdClass(); } /** * 数组初始化 * @return type */ function ArrayInit() { return array(); } /** * Zip压缩启用 */ function output_compress() { ini_set("zlib.output_compression", "On"); } /** * 设定脚本内使用的date函数的时区为中华人民共和国 */ function default_timezone() { date_default_timezone_set("PRC"); } 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 (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) } exit(Index::OverPass(Resp::err($err, $msg))); # 直接返回错误信息 } /** * 功能已过期 */ 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(5); # 内网不超过5秒 }