This code request at least PHP version ' . REQUIRED_PHP_VERSION #
. ', Current version: ' . PHP_VERSION . ".
" . PHP_EOL);
}
/**
* 是否处于编辑器中,辅助智能感知代码的 gwang(⊙ω⊙)
* @return bool 是否处于编辑器中
*/
function isEditor() {
return false; # 永久性的false就好
}
$GLOBALS['charset'] = "utf8"; # charset, used by CDBInit()
$GLOBALS['OS'] = "win32"; # os, used by JsonUtil::encode()
defined("ROOTDIR") or define("ROOTDIR", __DIR__); # 定义项目根目录
/**
* 一种优化方案, 如果部署环境可以支持动态代码生成,将会减少与redis网络通信的次数.
* @var boolean (部署环境)是否允许代码生成
*/
define('CodeGen_Enabled', false)
and CodeGen_Enabled
and define('CodeGen_Folder', ROOTDIR . '/../../CodeGen/'); # 代码生成功能的输出位置
require_once ROOTDIR . '/AutoLoad.php'; # 初始化框架自动加载机制
/**
* ★★★初始化支付数据工具★★★
* @return \CDbUtil
*/
function CPayInit() {
$cpay = new CDbUtil();
global $zoneid;
$paydb = config::Inst()->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,
* @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工具
* 需要调用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秒
}