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. 决定侧重使用. -- 王刚 * 2017.06.23 第一版 学习自禅道的开源框架. -- 王刚 * @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 loyalsoft\Req 全局访问 */ function req() { return Req::Ins(); } /** * 对象初始化 * @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 (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; $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); } /** * 如果变量为null则取默认值 * @param type $obj * @param type $defaultValue */ function my_null_default($obj, $defaultValue) { return ($obj === null) ? $defaultValue : $obj; # 注意这里必须用===判断 } /** * 确保指定变量不为空(若为空则用stdclass初始化) * @param \stdClass $obj */ function my_default_Obj(&$obj) { if (null == $obj) { $obj = new \stdClass(); } } /** * 确保指定变量不为空(若为空则用array()初始化) * @param \array $arr */ function my_default_Arr(&$arr) { if (null == $arr) { $arr = array(); } } /** * 功能已过期 */ 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秒 }