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秒