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秒
}