connectDB(config::Inst()); # 建立链接,传入配置文件
}
return $a;
}
/**
* @return \loyalsoft\CRedisUtil 获取全局MEM单例
*/
function gMem() {
static $cmem = null;
if ($cmem == null) {
$nosql = config::Inst()->nosql;
// $use_ext = true; # 使用扩展,测试用(暂时仅支持php7)
// if ($use_ext) {
// $cmem = new \Redis(); # 还是需要重写下, 之前的CRedisUtil已经增加了json_encode/decode.
// $cmem->connect($nosql->host, $nosql->port);
// $cmem->auth($nosql->pwd);
// } else {
$cmem = new CRedisUtil();
$cmem->conn($nosql->host, $nosql->port, $nosql->pwd, $nosql->db);
// }
}
return $cmem;
}
/**
* MongoUtil 辅助类
* @return MongoUtil
*/
function gMongo() {
static $mu = null;
if (null == $mu) {
$mu = new MongoUtil();
$mc = config::Inst()->mongo;
$mgr = $mu->conn($mc->conn, $mc->db);
if ($mgr === false) {
CLog::err("MongoDB连接异常!");
}
}
return $mu;
}
/**
* 简化提取全局变量的写法
* @return \sm_globalsettings
*/
function glc() {
return GameConfig::globalsettings();
}
/**
* @return \loyalsoft\Req 全局访问
*/
function req() {
return Req::Ins();
}
/**
*
* @param \loyalsoft\Data_UserGame $game 不为空则用参数更新 ctx
* @return \loyalsoft\Data_UserGame 玩家数据
*/
function ctx($game = null) {
if (null != $game) {
req()->game = $game;
}
return req()->game;
}
default_timezone(); # 全局范围内启用默认时区 中国时区
$zoneid = "1"; # 定义全局变量zoneid
/**
* 从QueryString初始化分区Id
* @global int $zoneid
*/
function InitZoneId() {
global $zoneid;
if (isset($_REQUEST['zoneid'])) {
$zoneid = $_REQUEST['zoneid']; # 从参数提取到全局变量.
}
}
/**
* 直接返回错误resp并结束运行
* @param int $err
* @param string $msg
*/
function Err($err, $msg = "") {
Index::Err($err, $msg);
}
/**
* 断言快速访问
* @param bool $condition
* @param int/str $err
*/
function my_Assert($condition, $err) {
DebugHelper::assert($condition, $err);
}
use Attribute;
#[Attribute]
class ArrayType {
}
/**
* 带换行符输出
*/
function echoLine() {
$cli = (php_sapi_name() === 'cli');
$args = func_get_args();
echo implode(" ", $args) . ( $cli ? PHP_EOL : "
"); # CLI下追加\n, html下追加
}
set_time_limit(25); # 设置脚本执行的超时时间: 不超过25秒