Jelajahi Sumber

代码整理,添加自检模块.

gwang 4 tahun lalu
induk
melakukan
2a284cd331

+ 1 - 1
Gameserver/Amfphp/Services/AppServer.php

@@ -104,7 +104,7 @@ class AppServer {
             return $resp;                                                       # 返回值
         } catch (\Exception $ex) {                                              # 异常信息写入日志
             $msg = CommUtil::str2UTF8($ex->getMessage());                       # 异常信息转下码
-            CLog::err("$msg\n  " . $ex->getTraceAsString(), "AppServer");       # 日志中追加traceinfo
+//            CLog::err("$msg\n  " . $ex->getTraceAsString(), "AppServer");       # 日志中追加traceinfo
             Err(ErrCode::err_unknownn, "call_user_func got Exception: $msg");   # 返回给客户端
         }
     }

+ 2 - 28
Gameserver/Amfphp/Services/TestServer.php

@@ -31,34 +31,8 @@ class TestServer {
      *   sqldb操作性
      */
     static function selfTest() {
-        // 检查gameOnline状态
-        echoLine("GAME_ONLINE := " . (GAME_ONLINE ? "True" : "False"));
-        // 检查phpversion
-        echoLine('PHP version: ' . PHP_VERSION);
-        if (version_compare(PHP_VERSION, REQUIRED_PHP_VERSION, '<')) {
-            echo ('<font color="red">This code request at least PHP version ' #
-            . REQUIRED_PHP_VERSION . '. </font><br/>\n');
-        }
-        echoLine("loaded extensions:"); // 已加载的扩展模块信息
-        echoLine(var_export(get_loaded_extensions(), true));                    # 打印
-        $required = array('iconv', 'json', 'mcrypt', 'SPL', 'pcre', #           # 打算做个检查推荐模块的逻辑呢
-            'Reflection', 'session', 'zip', 'zlib', 'PDO', 'openssl',
-            'curl', 'mbstring', 'mysqli', 'pdo_mysql', 'redis',
-            'sockets', 'xdebug');
-        // 检查redis地址, 可操作性
-        if (gMem()->set('test-selftest', "self cheking...")) {
-            echoLine("Redis check ok!");
-        } else {
-            echoLine("Redis check failed!");
-            echoLine(var_export(config::Inst()->nosql, true));
-        }
-        // 检查MySQL地址, 可操作性
-        if (daoInst()->tableExist('tab_token_gift')) {
-            echoLine("sqldb test ok");
-        } else {
-            echoLine("sqldb test failed!");
-            echoLine(var_export(config::Inst()->paydb), true);
-        }
+        echoLine("phpver: " . PHP_VERSION . PHP_EOL);                           # 打印下PHP版本 
+        SelfChecker::CheckConfig();                                             # 进行配置环境检测
     }
 
     public function testMemDelete($key) {

+ 1 - 1
Gameserver/Amfphp/base/Req.php

@@ -92,7 +92,7 @@ class Req extends Object_ext {
                 if ($this->uid) {
                     $this->userInfo = UserProc::getUserInfo($this->mem, $this->zoneid, $this->uid);
                     if (null == $this->userInfo) {
-                        CLog::err(">>>>>>>>>>用户数据读取为空!!<<<<<<<<<<<[$this->uid]", "PreProc");
+                        Err(">>>>>>>>>>用户数据读取为空!!<<<<<<<<<<<[$this->uid]:PreProc");
                     }
                 }
                 break;

+ 1 - 0
Gameserver/Amfphp/config.php

@@ -23,6 +23,7 @@ abstract class config {
      * @param string $uid
      * @return bool
      */
+
     function isTester($uid) {
         return in_array($uid, $this->testerArr);
     }

+ 1 - 3
Gameserver/Amfphp/main.php

@@ -33,8 +33,6 @@ define('CodeGen_Enabled', false)
         and define('CodeGen_Folder', ROOTDIR . '/../../CodeGen/');              # 代码生成功能的输出位置
 
 require_once ROOTDIR . '/AutoLoad.php';                                         # 初始化框架自动加载机制 
-DebugHelper::checkkPHPVersion();                                                # 检查PHP版本
-DebugHelper::checkModules();                                                    # 检查PHP模块
 
 /**
  * get dao instance,
@@ -147,6 +145,6 @@ function echoLine() {
 if (GAME_ONLINE) {                                                              # 设置脚本执行的超时时间
     set_time_limit(25);                                                         # 外网不超过25秒
 } else {
-    set_time_limit(5);                                                          # 内网不超过5秒
+    set_time_limit(10);                                                          # 内网不超过5秒
 }
     

+ 1 - 1
Gameserver/Amfphp/model/Const/GameConfig.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-11-20 12:01:37
+ // 日期: 2020-11-20 18:50:46
 ////////////////////
 
 /**

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_gate.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-11-19 13:55:26
+ // 日期: 2020-11-20 17:31:33
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_gate_combat.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-11-19 15:17:53
+ // 日期: 2020-11-20 17:43:22
 ////////////////////
 
 

+ 1 - 1
Gameserver/Amfphp/model/Const/sm_hero.php

@@ -4,7 +4,7 @@
  // 由CodeGenerator创建。
  // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
  // author: gwang 
- // 日期: 2020-11-19 20:34:28
+ // 日期: 2020-11-20 18:48:53
 ////////////////////
 
 

+ 2 - 4
Gameserver/Amfphp/process/HeroProc.php

@@ -1068,8 +1068,7 @@ class HeroProc {
         }
         $lvs = GameConfig::hero_levelexp_getItem($targetHero->level + 1);
         $targetHero->xp += $totalEXP;
-        CLog:: Assert("HeroProc", $targetHero->xp >= 0, #
-                "[" . $req->uid . "] : HeroLevelUpgrade Exp is negative!");
+        my_Assert($targetHero->xp >= 0, "[" . $req->uid . "] : HeroLevelUpgrade Exp is negative!");
         $initLevel = $targetHero->level;
         while ($targetHero->xp >= $lvs->needExp) {
             if ($targetHero->level < $maxLevel) {                               # 如果未到达最大等级
@@ -1085,8 +1084,7 @@ class HeroProc {
                 break;
             }
         } // end while
-        CLog:: Assert("HeroProc", $targetHero->xp >= 0, #
-                "[" . $req->uid . "] : HeroLevelUpgrade Exp is negative!");
+        my_Assert($targetHero->xp >= 0, "[" . $req->uid . "] : HeroLevelUpgrade Exp is negative!");
         $collectHeros->$heroUID = $targetHero;                                  # 更新英雄的数据 
 //        if ($targetHero->level != $initLevel) {
         TaskProc::OnHeroLevelUp($targetHero->typeId, $targetHero->level);

+ 1 - 1
Gameserver/Amfphp/process/UserProc.php

@@ -548,7 +548,7 @@ class UserProc {
             $playerName = $req->userInfo->game->baseInfo->name;
             $headImg = $req->userInfo->game->baseInfo->headImg;
         } else {
-            CLog::warn('玩家数据为空!' . __CLASS__ . '.' . __FUNCTION__);
+            Err('玩家数据为空!' . __CLASS__ . '.' . __FUNCTION__);
         }
         if (is_null($level)) {
             $level = 0;

+ 1 - 1
Gameserver/Amfphp/service_call/mergemem/MemKeyList.php

@@ -2,7 +2,7 @@
 
 namespace loyalsoft;
 
-DebugHelper::checkkPHPVersion("5.5.0");                                         # 检查PHP版本, yield关键字在5.5以后提供
+SelfChecker::checkkPHPVersion("5.5.0");                                         # 检查PHP版本, yield关键字在5.5以后提供
 
 /**
  * Description of MemKeyList

+ 4 - 13
Gameserver/Amfphp/test.php

@@ -3,22 +3,13 @@
 namespace loyalsoft;
 
 include __DIR__ . '/main.php';
-echo ("phpver: " . PHP_VERSION . PHP_EOL);
+echoLine("phpver: " . PHP_VERSION . PHP_EOL);
 
 //set_time_limit(15);                                                           # 设置执行超时时间
 //
 //require_once ROOTDIR . '/Util/OpenSSLVerify.php';                             # Ps. 这个文件和类名没有对应关系.
 //header('X-Accel-Buffering: no');                                              # nginx 控制头, 关闭buffer
+//$tableName = "test-20201123";
+//var_dump(daoInst()->tableExist($tableName));
 
-
-
-
-
-$goodsStr = "";
-
-$ary = explode(";", $goodsStr);
-var_dump($ary);
-foreach ($ary as $value) {
-    var_dump($value);
-}
-var_dump(strlen(null));
+SelfChecker::CheckConfig();

+ 88 - 87
Gameserver/Amfphp/util/CMemBase.php

@@ -2,92 +2,93 @@
 
 namespace loyalsoft;
 
-/*
- * 功能: 内存数据库操作基类
- * version:
- *
- */
-
-/**
- * Description of CMemBase
- * CMemNoSqL db 操作基类
- * @author gwang (mail@wanggangzero.cn)
- */
-abstract class CMemBase {
-
-    /**
-     * 连接
-     */
-    abstract public function conn($host, $port, $pwd = "");
-
-    /**
-     * 查询/获取 指定 key 对应的value
-     */
-    abstract public function get($key);
-
-    abstract public function set($key, $value, $ts = 0);
-
-    /**
-     * 取没有进行json编码的数据
-     * @param type $key
-
-     * @return type
-     */
-    abstract public function getWithoutJson($key);
-
-    /**
-     * 设置值,内部不加 json_encode
-     * @param string $key
-     * @param string $value
-     * @param seconds $ts
-     * @return boolean
-     */
-    abstract public function setWithoutJson($key, $value, $ts = 0);
-
-    /**
-     * 给某个指定数据 加上 指定的数值
-     */
-    abstract public function add($key, $value, $ts = 0);
-
-    /**
-     * 替换某条数据
-     */
-    abstract public function replace($key, $value, $ts = 0);
-
-    /**
-     * 删除某条指定的数据
-     */
-    abstract public function delete($key);
-
-    /**
-     * 给指定的key所对应的值增加1
-     */
-    abstract public function increment($key);
-
-    /**
-     * 一次取多个值
-     */
-    abstract public function getMulti($keys);
-
-    /**
-     * 一次设置多个值
-     * @param array $dict [{"key":value},{"key":value}, ...]
-     * @param int $expireTs 超时时间
-     */
-    abstract public function setMutlti($dict, $expireTs = 0);
-
+//
+///*
+// * 功能: 内存数据库操作基类
+// * version:
+// *
+// */
+//
+///**
+// * Description of CMemBase
+// * CMemNoSqL db 操作基类
+// * @author gwang (mail@wanggangzero.cn)
+// */
+//abstract class CMemBase {
+//
 //    /**
-//     * Compare and set 比较并且(结果相同则)写入
+//     * 连接
 //     */
-//    abstract public function cas($key, $value, $ts);
-
-    /**
-     * 复制
-     */
-    abstract public function copy($surKey, $desKey);
-
-    /**
-     * 关闭连接
-     */
-    abstract public function close();
-}
+//    abstract public function conn($host, $port, $pwd = "");
+//
+//    /**
+//     * 查询/获取 指定 key 对应的value
+//     */
+//    abstract public function get($key);
+//
+//    abstract public function set($key, $value, $ts = 0);
+//
+//    /**
+//     * 取没有进行json编码的数据
+//     * @param type $key
+//
+//     * @return type
+//     */
+//    abstract public function getWithoutJson($key);
+//
+//    /**
+//     * 设置值,内部不加 json_encode
+//     * @param string $key
+//     * @param string $value
+//     * @param seconds $ts
+//     * @return boolean
+//     */
+//    abstract public function setWithoutJson($key, $value, $ts = 0);
+//
+//    /**
+//     * 给某个指定数据 加上 指定的数值
+//     */
+//    abstract public function add($key, $value, $ts = 0);
+//
+//    /**
+//     * 替换某条数据
+//     */
+//    abstract public function replace($key, $value, $ts = 0);
+//
+//    /**
+//     * 删除某条指定的数据
+//     */
+//    abstract public function delete($key);
+//
+//    /**
+//     * 给指定的key所对应的值增加1
+//     */
+//    abstract public function increment($key);
+//
+//    /**
+//     * 一次取多个值
+//     */
+//    abstract public function getMulti($keys);
+//
+//    /**
+//     * 一次设置多个值
+//     * @param array $dict [{"key":value},{"key":value}, ...]
+//     * @param int $expireTs 超时时间
+//     */
+//    abstract public function setMutlti($dict, $expireTs = 0);
+//
+////    /**
+////     * Compare and set 比较并且(结果相同则)写入
+////     */
+////    abstract public function cas($key, $value, $ts);
+//
+//    /**
+//     * 复制
+//     */
+//    abstract public function copy($surKey, $desKey);
+//
+//    /**
+//     * 关闭连接
+//     */
+//    abstract public function close();
+//}

+ 169 - 168
Gameserver/Amfphp/util/CMemUtil.php

@@ -1,170 +1,171 @@
 <?php
 
-namespace loyalsoft;
-
-/*
- * 操作内存数据库 Memcache工具类
- * version:
- *     2016.4.12  (gwang)改造出一个基类
- *     2016.4.12  以前的记录无
- */
-
-/**
- * Description of MemCacheUtil
- * CMem工具类[APHP三大操作单元之一]
- * @deprecated since version 2017.08.08
- * @author jgao,gwang
- */
-class CMemUtil extends CMemBase
-{
-
-    //put your code here
-    public $mem = 0;
-    public $keyDic = null;
-
-    public function conn($host, $port, $pwd = "")
-    {
-        $this->keyDic = new \stdClass();
-        $this->mem = new Memcache();
-        return $this->mem->connect($host, $port);
-    }
-
-    /**
-     *
-     * @param string $key
-     * @return any
-     */
-    public function get($key)
-    {
-        $cas_token = "";
-        if ($GLOBALS['mem_version'] == "3.0") {
-            $result = memcache_get($this->mem, $key, null, $cas_token);
-        } else {
-            $result = memcache_get($this->mem, $key);
-        }
-        if (!$result || $result == "" || $result == null) {
-            return null;
-        }
-        if ($GLOBALS['mem_version'] == "3.0") {
-            $this->keyDic->$key = $cas_token;
-        }
-        return JsonUtil::decode($result);
-    }
-
-    public function set($key, $value, $ts = 0)
-    {
-        if ($value == null || $value == "") {
-            return false;
-        }
-        return memcache_set($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts);
-    }
-
-    /**
-     * 取没有进行json编码的数据
-     * @param type $key
-     * @return string
-     */
-    public function getWithoutJson($key)
-    {
-        $cas_token = "";
-        if ($GLOBALS['mem_version'] == "3.0") {
-            $result = memcache_get($this->mem, $key, null, $cas_token);
-        } else {
-            $result = memcache_get($this->mem, $key);
-        }
-        if (!$result || $result == "" || $result == null) {
-            return null;
-        }
-        if ($GLOBALS['mem_version'] == "3.0") {
-            $this->keyDic->$key = $cas_token;
-        }
-        return $result;
-    }
-
-    /**
-     * 设置值,内部不加 json_encode
-     * @param string $key
-     * @param string $value
-     * @param int $ts expirets Ps.当ts的值大于一个月的时候将被视为时间戳
-     * @return boolean
-     */
-    public function setWithoutJson($key, $value, $ts = 0)
-    {
-        if ($value == null || $value == "") {
-            return false;
-        }
-        return memcache_set($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts);
-    }
-
-    public function add($key, $value, $ts = 0)
-    {
-        if ($value == null || $value == "") {
-            return false;
-        }
-        return memcache_add($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts);
-    }
-
-    public function replace($key, $value, $ts = 0)
-    {
-        if ($value == null || $value == "") {
-            return false;
-        }
-        return memcache_replace($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts);
-    }
-
-    public function delete($key)
-    {
-        return memcache_delete($this->mem, $key);
-    }
-
-    public function increment($key)
-    {
-        return memcache_increment($this->mem, $key);
-    }
-
-    public function getMulti($keys)
-    {
-        $retArray = array();
-        foreach ($keys as $key) {
-            $result = $this->get($key);
-            if ($result == null) {
-                $retArray[] = null;
-            } else {
-                $retArray[] = $result;
-            }
-        }
-        return $retArray;
-    }
-
-    public function setMutlti($dict, $expireTs = 0)
-    {
-        ;
-    }
-
-    public function cas($key, $value, $ts)
-    {
-        if ($GLOBALS['mem_version'] == "3.0") {
-            if ($value == null || $value == "") {
-                return false;
-            }
-            if (!property_exists($this->keyDic, $key)) {
-                return memcache_set($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts);
-            }
-            $cas_token = $this->keyDic->$key;
-            return memcache_cas($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts, $cas_token);
-        } else {
-            return $this->set($key, $value, $ts);
-        }
-    }
-
-    public function copy($surKey, $desKey)
-    {
-        return $this->set($desKey, $this->get($surKey));
-    }
-
-    public function close()
-    {
-        return memcache_close($this->mem);
-    }
-
-}
+//
+//namespace loyalsoft;
+//
+///*
+// * 操作内存数据库 Memcache工具类
+// * version:
+// *     2016.4.12  (gwang)改造出一个基类
+// *     2016.4.12  以前的记录无
+// */
+//
+///**
+// * Description of MemCacheUtil
+// * CMem工具类[APHP三大操作单元之一]
+// * @deprecated since version 2017.08.08
+// * @author jgao,gwang
+// */
+//class CMemUtil extends CMemBase
+//{
+//
+//    //put your code here
+//    public $mem = 0;
+//    public $keyDic = null;
+//
+//    public function conn($host, $port, $pwd = "")
+//    {
+//        $this->keyDic = new \stdClass();
+//        $this->mem = new Memcache();
+//        return $this->mem->connect($host, $port);
+//    }
+//
+//    /**
+//     *
+//     * @param string $key
+//     * @return any
+//     */
+//    public function get($key)
+//    {
+//        $cas_token = "";
+//        if ($GLOBALS['mem_version'] == "3.0") {
+//            $result = memcache_get($this->mem, $key, null, $cas_token);
+//        } else {
+//            $result = memcache_get($this->mem, $key);
+//        }
+//        if (!$result || $result == "" || $result == null) {
+//            return null;
+//        }
+//        if ($GLOBALS['mem_version'] == "3.0") {
+//            $this->keyDic->$key = $cas_token;
+//        }
+//        return JsonUtil::decode($result);
+//    }
+//
+//    public function set($key, $value, $ts = 0)
+//    {
+//        if ($value == null || $value == "") {
+//            return false;
+//        }
+//        return memcache_set($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts);
+//    }
+//
+//    /**
+//     * 取没有进行json编码的数据
+//     * @param type $key
+//     * @return string
+//     */
+//    public function getWithoutJson($key)
+//    {
+//        $cas_token = "";
+//        if ($GLOBALS['mem_version'] == "3.0") {
+//            $result = memcache_get($this->mem, $key, null, $cas_token);
+//        } else {
+//            $result = memcache_get($this->mem, $key);
+//        }
+//        if (!$result || $result == "" || $result == null) {
+//            return null;
+//        }
+//        if ($GLOBALS['mem_version'] == "3.0") {
+//            $this->keyDic->$key = $cas_token;
+//        }
+//        return $result;
+//    }
+//
+//    /**
+//     * 设置值,内部不加 json_encode
+//     * @param string $key
+//     * @param string $value
+//     * @param int $ts expirets Ps.当ts的值大于一个月的时候将被视为时间戳
+//     * @return boolean
+//     */
+//    public function setWithoutJson($key, $value, $ts = 0)
+//    {
+//        if ($value == null || $value == "") {
+//            return false;
+//        }
+//        return memcache_set($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts);
+//    }
+//
+//    public function add($key, $value, $ts = 0)
+//    {
+//        if ($value == null || $value == "") {
+//            return false;
+//        }
+//        return memcache_add($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts);
+//    }
+//
+//    public function replace($key, $value, $ts = 0)
+//    {
+//        if ($value == null || $value == "") {
+//            return false;
+//        }
+//        return memcache_replace($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts);
+//    }
+//
+//    public function delete($key)
+//    {
+//        return memcache_delete($this->mem, $key);
+//    }
+//
+//    public function increment($key)
+//    {
+//        return memcache_increment($this->mem, $key);
+//    }
+//
+//    public function getMulti($keys)
+//    {
+//        $retArray = array();
+//        foreach ($keys as $key) {
+//            $result = $this->get($key);
+//            if ($result == null) {
+//                $retArray[] = null;
+//            } else {
+//                $retArray[] = $result;
+//            }
+//        }
+//        return $retArray;
+//    }
+//
+//    public function setMutlti($dict, $expireTs = 0)
+//    {
+//        ;
+//    }
+//
+//    public function cas($key, $value, $ts)
+//    {
+//        if ($GLOBALS['mem_version'] == "3.0") {
+//            if ($value == null || $value == "") {
+//                return false;
+//            }
+//            if (!property_exists($this->keyDic, $key)) {
+//                return memcache_set($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts);
+//            }
+//            $cas_token = $this->keyDic->$key;
+//            return memcache_cas($this->mem, $key, JsonUtil::encode($value), MEMCACHE_COMPRESSED, $ts, $cas_token);
+//        } else {
+//            return $this->set($key, $value, $ts);
+//        }
+//    }
+//
+//    public function copy($surKey, $desKey)
+//    {
+//        return $this->set($desKey, $this->get($surKey));
+//    }
+//
+//    public function close()
+//    {
+//        return memcache_close($this->mem);
+//    }
+//
+//}

+ 133 - 132
Gameserver/Amfphp/util/CMemdUtil.php

@@ -1,134 +1,135 @@
 <?php
 
-namespace loyalsoft;
-
-/**
- * Description of CMemdUtil
- * CMemd工具类[CMem线上版]
- * @deprecated since version 2017.08.08
- * @author jgao,gwang
- */
-class CMemdUtil extends CMemBase
-{
-
-    //put your code here
-    public $mem = 0;
-    public $keyDic = null;
-
-    public function conn($host, $port, $pwd = "")
-    {
-        $this->mem = new Memcached();
-        $this->mem->addServer($host, $port);
-        $this->keyDic = new \stdClass();
-    }
-
-    public function get($key)
-    {
-        $cas_token = "";
-        $result = $this->mem->get($key, null, $cas_token);
-        if (!$result || $result == "" || $result == null) {
-            return null;
-        }
-        $this->keyDic->$key = $cas_token;
-        return JsonUtil::decode($result);
-    }
-
-    public function set($key, $value, $ts = 0)
-    {
-        if ($value == null || $value == "") {
-            return false;
-        }
-        return $this->mem->set($key, JsonUtil::encode($value), $ts);
-    }
-
-    public function add($key, $value, $ts = 0)
-    {
-        if ($value == null || $value == "") {
-            return false;
-        }
-        return $this->mem->add($key, JsonUtil::encode($value), $ts);
-    }
-
-    public function replace($key, $value, $ts = 0)
-    {
-        if ($value == null || $value == "") {
-            return false;
-        }
-        return $this->mem->replace($this->mem, $key, JsonUtil::encode($value), $ts);
-    }
-
-    public function delete($key)
-    {
-        return $this->mem->delete($key);
-    }
-
-    public function increment($key)
-    {
-        return $this->mem->increment($key);
-    }
-
-    public function getMulti($keys)
-    {
-        $resultMulti = $this->mem->getMulti($keys);
-        $retArray = array();
-        foreach ($resultMulti as $result) {
-            if (!$result || $result == "" || $result == null) {
-                $retArray[] = null;
-            } else {
-                $retArray[] = JsonUtil::decode($result);
-            }
-        }
-        return $retArray;
-    }
-
-    public function cas($key, $value, $ts)
-    {
-        if (!property_exists($this->keyDic, $key)) {
-            return false;
-        }
-        if ($value == null || $value == "") {
-            return false;
-        }
-        $cas_token = $this->keyDic->$key;
-        return $this->mem->cas($cas_token, $key, JsonUtil::encode($value), $ts);
-    }
-
-    public function close()
-    {
-        return $this->mem->quit();
-    }
-
-// --> 实现抽象类的 功能
-    public function copy($surKey, $desKey)
-    {
-        return $this->set($desKey, $this->get($surKey));
-    }
-
-    /**
-     *
-     * @deprecated since version 20160413113950 经过自己考察json_encode对数据的影响并不存在
-     * @param type $key
-     */
-    public function getWithoutJson($key)
-    {
-
-    }
-
-    /**
-     *
-     * @deprecated since version 20160413113950 经过自己考察json_encode对数据的影响并不存在
-     * @param type $key
-     * @param type $value
-     * @param type $ts
-     */
-    public function setWithoutJson($key, $value, $ts = 0)
-    {
-
-    }
-
-    public function setMutlti($dict, $expireTs = 0)
-    {
-
-    }
-
-}
+//
+//namespace loyalsoft;
+//
+///**
+// * Description of CMemdUtil
+// * CMemd工具类[CMem线上版]
+// * @deprecated since version 2017.08.08
+// * @author jgao,gwang
+// */
+//class CMemdUtil extends CMemBase
+//{
+//
+//    //put your code here
+//    public $mem = 0;
+//    public $keyDic = null;
+//
+//    public function conn($host, $port, $pwd = "")
+//    {
+//        $this->mem = new Memcached();
+//        $this->mem->addServer($host, $port);
+//        $this->keyDic = new \stdClass();
+//    }
+//
+//    public function get($key)
+//    {
+//        $cas_token = "";
+//        $result = $this->mem->get($key, null, $cas_token);
+//        if (!$result || $result == "" || $result == null) {
+//            return null;
+//        }
+//        $this->keyDic->$key = $cas_token;
+//        return JsonUtil::decode($result);
+//    }
+//
+//    public function set($key, $value, $ts = 0)
+//    {
+//        if ($value == null || $value == "") {
+//            return false;
+//        }
+//        return $this->mem->set($key, JsonUtil::encode($value), $ts);
+//    }
+//
+//    public function add($key, $value, $ts = 0)
+//    {
+//        if ($value == null || $value == "") {
+//            return false;
+//        }
+//        return $this->mem->add($key, JsonUtil::encode($value), $ts);
+//    }
+//
+//    public function replace($key, $value, $ts = 0)
+//    {
+//        if ($value == null || $value == "") {
+//            return false;
+//        }
+//        return $this->mem->replace($this->mem, $key, JsonUtil::encode($value), $ts);
+//    }
+//
+//    public function delete($key)
+//    {
+//        return $this->mem->delete($key);
+//    }
+//
+//    public function increment($key)
+//    {
+//        return $this->mem->increment($key);
+//    }
+//
+//    public function getMulti($keys)
+//    {
+//        $resultMulti = $this->mem->getMulti($keys);
+//        $retArray = array();
+//        foreach ($resultMulti as $result) {
+//            if (!$result || $result == "" || $result == null) {
+//                $retArray[] = null;
+//            } else {
+//                $retArray[] = JsonUtil::decode($result);
+//            }
+//        }
+//        return $retArray;
+//    }
+//
+//    public function cas($key, $value, $ts)
+//    {
+//        if (!property_exists($this->keyDic, $key)) {
+//            return false;
+//        }
+//        if ($value == null || $value == "") {
+//            return false;
+//        }
+//        $cas_token = $this->keyDic->$key;
+//        return $this->mem->cas($cas_token, $key, JsonUtil::encode($value), $ts);
+//    }
+//
+//    public function close()
+//    {
+//        return $this->mem->quit();
+//    }
+//
+//// --> 实现抽象类的 功能
+//    public function copy($surKey, $desKey)
+//    {
+//        return $this->set($desKey, $this->get($surKey));
+//    }
+//
+//    /**
+//     *
+//     * @deprecated since version 20160413113950 经过自己考察json_encode对数据的影响并不存在
+//     * @param type $key
+//     */
+//    public function getWithoutJson($key)
+//    {
+//
+//    }
+//
+//    /**
+//     *
+//     * @deprecated since version 20160413113950 经过自己考察json_encode对数据的影响并不存在
+//     * @param type $key
+//     * @param type $value
+//     * @param type $ts
+//     */
+//    public function setWithoutJson($key, $value, $ts = 0)
+//    {
+//
+//    }
+//
+//    public function setMutlti($dict, $expireTs = 0)
+//    {
+//
+//    }
+//
+//}

+ 2 - 1
Gameserver/Amfphp/util/CRedisUtil.php

@@ -17,6 +17,7 @@ require __DIR__ . '/Predis/Autoloader.php';
  *
  * 支持命令集接口见: /phpRedisAdmin/predis/src/ClientInterface.php
  * @version <br/>
+ *          1.0.4  取消公共基类CMemBase,后面可能不太会用到memcache(d)了. gwang 2020年11月23日
  *          1.0.3  扩展list相关api的操作方法, 针对values统一做json编解码处理.
  *                 整理其他数据结构的操作方法, normal/hash/list api内部做json编解码处理,
  *                 set/zset value 默认不做json编解码处理, 针对set/zset的value,不推荐写入太大或复杂的数据.
@@ -25,7 +26,7 @@ require __DIR__ . '/Predis/Autoloader.php';
  *          1.0.1  扩充了事务的使用方法.开发竞争类业务,圣树争夺战, gwang 2016.3.21 <br/>
  *          1.0.0  pguan,基础功能, 方法与memcache看齐. <br/>
  */
-class CRedisUtil extends CMemBase {
+class CRedisUtil {
 //    public $keyDic = null;
 
     /**

+ 0 - 33
Gameserver/Amfphp/util/DebugHelper.php

@@ -162,37 +162,4 @@ class DebugHelper {
         }
     }
 
-    /**
-     * 检查模块是否加载
-     * @param string[] $arr 要检查的模块名称
-     */
-    public static function checkModules($arr = array()) {
-        $default = array(#                                                      # 必备基础模块
-            "curl",
-            "mbstring",
-            "openssl",
-            "pdo_mysql",
-            "sockets",
-            "zlib",
-        );
-        $r_modules = array_merge($default, $arr);                               # 合并指定模块
-        $diff = array_diff($r_modules, get_loaded_extensions());                # 判断缺失模块
-        if (count($diff)) {                                                     # 确实缺失模块
-            die("require modules: " . implode(' ,', $diff));                    # 直接结束运行
-        }
-    }
-
-    /**
-     * 检查PHP版本
-     * @param string $ver 最低版本字符串类似于7.3.5
-     */
-    public static function checkkPHPVersion($ver = null) {
-        $default_ver = "5.4.16";
-        $r_ver = isset($ver) ? $ver : $default_ver;
-        if (version_compare(PHP_VERSION, $r_ver, '<')) {
-            die('<font color="red">This code request at least PHP version ' . $r_ver #
-                    . ', Current version: ' . PHP_VERSION . ".</font><br/>" . PHP_EOL);
-        }
-    }
-
 }

+ 25 - 21
Gameserver/Amfphp/util/IDCardValiUtil.php

@@ -4,13 +4,30 @@ namespace loyalsoft;
 
 /**
  * Description of IDCardValiUtil
- * 身份证校验类
+ * 身份证校验工具
  * @author gwang
+ * @version 1.0.0  Created by gwang(wanggangzero@qq.com). -gwang 2020.11.23
  */
 class IDCardValiUtil {
 
     /**
-     * 校验
+     * 根据给定身份证号码推算当前年龄
+     * @param type $idcard
+     * @return type
+     */
+    static function idcard_getage($idcard) {
+        if (self::validation_filter_id_card($idcard)) {
+            if ((strlen($idcard) == 15)) {
+                $idcard = self::idcard_15to18($idcard);
+            }
+            $bird_year = substr($idcard, 6, 4);
+            return date("Y") - $bird_year;
+        }
+        return -1;
+    }
+
+    /**
+     * 校验格式是否正常
      * @param type $id_card
      * @return boolean
      */
@@ -25,12 +42,14 @@ class IDCardValiUtil {
         }
     }
 
+// <editor-fold defaultstate="collapsed" desc="   私有辅助方法   ">
+
     /**
      * 计算身份证校验码,根据国家标准GB 11643-1999
      * @param type $idcard_base
      * @return boolean|string
      */
-    static function idcard_verify_number($idcard_base) {
+    private static function idcard_verify_number($idcard_base) {
         if (strlen($idcard_base) != 17) {
             return false;
         }
@@ -52,7 +71,7 @@ class IDCardValiUtil {
      * @param type $idcard
      * @return boolean|string
      */
-    static function idcard_15to18($idcard) {
+    private static function idcard_15to18($idcard) {
         if (strlen($idcard) != 15) {
             return false;
         } else {
@@ -72,7 +91,7 @@ class IDCardValiUtil {
      * @param type $idcard
      * @return boolean
      */
-    static function idcard_checksum18($idcard) {
+    private static function idcard_checksum18($idcard) {
         if (strlen($idcard) != 18) {
             return false;
         }
@@ -84,20 +103,5 @@ class IDCardValiUtil {
         }
     }
 
-    /**
-     * 根据给定身份证号码推算当前年龄
-     * @param type $idcard
-     * @return type
-     */
-    static function idcard_getage($idcard) {
-        if (self::validation_filter_id_card($idcard)) {
-            if ((strlen($idcard) == 15)) {
-                $idcard = self::idcard_15to18($idcard);
-            }
-            $bird_year = substr($idcard, 6, 4);
-            return date("Y") - $bird_year;
-        }
-        return -1;
-    }
-
+// </editor-fold>
 }

+ 103 - 0
Gameserver/Amfphp/util/SelfChecker.php

@@ -0,0 +1,103 @@
+<?php
+
+namespace loyalsoft;
+
+/**
+ * Description of SelfChecker
+ * 框架的自我检查工具
+ * @author gwang
+ */
+class SelfChecker {
+
+    /**
+     * 检查模块是否加载
+     * @param string[] $arr 要检查的模块名称
+     */
+    public static function checkModules($arr = array()) {
+        $default = array(#                                                      # 必备基础模块
+            "curl",
+            "mbstring",
+            "openssl",
+            "pdo_mysql",
+            "sockets",
+            "zlib",
+        );
+        $r_modules = array_merge($default, $arr);                               # 合并指定模块
+        $diff = array_diff($r_modules, get_loaded_extensions());                # 判断缺失模块
+        if (count($diff)) {                                                     # 确实缺失模块
+            die("require modules: " . implode(' ,', $diff));                    # 直接结束运行
+        }
+    }
+
+    /**
+     * 检查PHP版本
+     * @param string $ver 最低版本字符串类似于7.3.5
+     */
+    public static function checkkPHPVersion($ver = null) {
+        $default_ver = "5.4.16";
+        $r_ver = isset($ver) ? $ver : $default_ver;
+        if (version_compare(PHP_VERSION, $r_ver, '<')) {
+            die('<font color="red">This code request at least PHP version ' . $r_ver #
+                    . ', Current version: ' . PHP_VERSION . ".</font><br/>" . PHP_EOL);
+        }
+    }
+
+    /**
+     * 检查配置文件
+     */
+    public static function CheckConfig() {
+        echoLine("检查配置:");
+        echoLine("GameOnline: " . GAME_ONLINE);
+        echoLine("MySQL Connect Settings; " . var_export(config::Inst()->paydb, true));
+        self::TestMysql_RW();
+        echoLine("NoSql(Redis) Connect Settings: " . var_export(config::Inst()->nosql, true));
+        self::TestNoSQL_RW();
+        echoLine("Upload path Settings: " . "本框架暂未涉及.");
+    }
+
+    /**
+     * 测试NoSql连接,以及读写性能
+     */
+    private static function TestNoSQL_RW() {
+        $key = "test-" . TimeUtil::tsYmdHis();
+        echoLine("Redis Server is running: " . gMem()->ping());
+        echoLine("Redis Write($key, 'Hello world!'):" . gMem()->set($key, "Hello world!"));
+        echoLine("Redis Read($key): " . gMem()->get($key));
+        echo("Profile Redis set/get: ");
+        RenderTime::Test(function ()use($key) {
+            gMem()->set($key, "Hello world!");
+            gMem()->get($key);
+        }, 100);
+    }
+
+    /**
+     * 测试MySQL连接,以及读写性能
+     */
+    private static function TestMysql_RW() {
+        $tableName = "test-" . date('Ymd');
+        echoLine("Connection is " . (daoInst()->Ping() ? "ok!" : "gone!"));
+        $bCretaTable = daoInst()->tableExist($tableName);
+        if ($bCretaTable) {
+            echoLine("Table $tableName is Existing.");
+        } else {
+            echoLine("Table $tableName is not Existing.");
+            $sql = " CREATE TABLE if NOT exists `$tableName` (`row` INT(11) NOT NULL AUTO_INCREMENT COMMENT '自增行号',`msg` TEXT NULL DEFAULT NULL COMMENT '消息内容' COLLATE 'utf8_general_ci',	PRIMARY KEY (`row`) USING BTREE) COLLATE='utf8_general_ci' ENGINE=INNODB ; ";
+            daoInst()->exec($sql);
+            echoLine("create table $tableName " . (daoInst()->tableExist($tableName) ? "success!" : "failed!"));
+        }
+
+        $row = daoInst()->insert("`$tableName`")->data(array('msg' => 'Hello world!'))->exec();
+        echoLine("Insert into `$tableName` " . ($row == 1 ? "ok!" : "failed!"));
+        echo("Profile Insert: ");
+        RenderTime::Test(function()use($tableName) {
+            daoInst()->insert("`$tableName`")->data(array('msg' => 'Hello world!'))->exec();
+        }, 10);
+        $sql = "Drop Table `$tableName`;";
+        daoInst()->exec($sql);
+        echoLine("delete table $tableName " . (daoInst()->tableExist($tableName) ? "failed!" : "success!"));
+    }
+
+}
+
+SelfChecker::checkkPHPVersion();                                                # 检查PHP版本
+SelfChecker::checkModules();                                                    # 检查PHP模块

+ 4 - 3
Gameserver/Amfphp/util/UtilInclude.php

@@ -9,11 +9,12 @@ require_once 'JsonUtil.php';
 require_once 'TimeUtil.php';                                                    # 时间处理方法
 require_once 'CLog.php';                                                        # 高性能日志
 require_once 'ErrHandler.php';                                                  # 引入错误捕获功能
-require_once 'CMemBase.php';                                                    # 内存数据库读写的基类
+//require_once 'CMemBase.php';                                                    # 内存数据库读写的基类
 require_once 'CRedisUtil.php';                                                  # Redis操作方法库(提升智能感知功能)
 require_once 'HttpUtil.php';                                                    # http协议辅助脚本
-//require_once 'Event.php';                                                      # 模拟事件模式
-require_once 'DebugHelper.php';                                                # 调试辅助脚本
+//require_once 'Event.php';                                                     # 模拟事件模式
+require_once 'DebugHelper.php';                                                 # 调试辅助脚本
+require_once 'SelfChecker.php';                                                 # 自检模块
 require_once 'dao.php';                                                         # dao辅助脚本
 
 //require_once ROOTDIR . '/Util/traits/RedisFlat.php';

+ 33 - 23
Gameserver/Amfphp/util/dao.php

@@ -964,19 +964,29 @@ class dao {
      */
     public function tableExist($tableName) {
         $this->reset();
-        $this->setMethod('select');
-        $sql = "SELECT 1 FROM $tableName LIMIT 1";
+//        $this->setMethod('select');
+        $sql = "select * from information_schema.TABLES where `TABLE_NAME` = '$tableName';";
+//        var_dump($sql);
         try {
-            if ($this->slaveDBH and $this->method == 'select') {
-                $ret = $this->slaveDBH->query($sql)->fetch();
-            } else {
-                $ret = $this->dbh->query($sql)->fetch();
-            }
+            $stmt = $this->query($sql);
+            $ret = $stmt->fetchall();
         } catch (Exception $exc) {
             return false;
         }
+//        var_dump($ret);
         // Result is either boolean FALSE (no table found) or PDOStatement Object (table found)
-        return $ret !== FALSE;      # false代表表不存在
+        return $ret !== FALSE && is_array($ret) && count($ret) > 0;             # false或者返回0行记录,代表表不存在
+    }
+
+    public function Ping() {
+        try {
+            $this->dbh->getAttribute(PDO::ATTR_SERVER_INFO);
+        } catch (PDOException $e) {
+            if (strpos($e->getMessage(), 'MySQL server has gone away') !== false) {
+                return false;
+            }
+        }
+        return true;
     }
 
     /**
@@ -1428,7 +1438,7 @@ class sql {
      * @return object the sql object.
      */
     public function where($arg1, $arg2 = null, $arg3 = null) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         if ($arg3 !== null) {
             $value = $this->quote($arg3);
@@ -1449,7 +1459,7 @@ class sql {
      * @return object the sql object.
      */
     public function andWhere($condition) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= " AND $condition ";
         return $this;
@@ -1463,7 +1473,7 @@ class sql {
      * @return object the sql object.
      */
     public function orWhere($condition) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= " OR $condition ";
         return $this;
@@ -1477,7 +1487,7 @@ class sql {
      * @return object the sql object.
      */
     public function eq($value) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= " = " . $this->quote($value);
         return $this;
@@ -1491,7 +1501,7 @@ class sql {
      * @return void the sql object.
      */
     public function ne($value) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= " != " . $this->quote($value);
         return $this;
@@ -1505,7 +1515,7 @@ class sql {
      * @return object the sql object.
      */
     public function gt($value) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= " > " . $this->quote($value);
         return $this;
@@ -1519,7 +1529,7 @@ class sql {
      * @return object the sql object.
      */
     public function ge($value) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= " >= " . $this->quote($value);
         return $this;
@@ -1533,7 +1543,7 @@ class sql {
      * @return object the sql object.
      */
     public function lt($value) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= " < " . $this->quote($value);
 
@@ -1564,7 +1574,7 @@ class sql {
      * @return object the sql object.
      */
     public function between($min, $max) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $min = $this->quote($min);
         $max = $this->quote($max);
@@ -1581,7 +1591,7 @@ class sql {
      */
     public function in($ids) {
 //        var_dump($ids);
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= self::dbIN($ids);
         return $this;
@@ -1609,7 +1619,7 @@ class sql {
      * @return object the sql object.
      */
     public function notin($ids) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= ' NOT ' . self::dbIN($ids);
         return $this;
@@ -1623,7 +1633,7 @@ class sql {
      * @return object the sql object.
      */
     public function like($string) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= " LIKE " . $this->quote($string);
         return $this;
@@ -1637,7 +1647,7 @@ class sql {
      * @return object the sql object.
      */
     public function notLike($string) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= "NOT LIKE " . $this->quote($string);
         return $this;
@@ -1652,7 +1662,7 @@ class sql {
      * @return object the sql object.
      */
     public function findInSet($str, $strList) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
         $this->sql .= "FIND_IN_SET(" . $str . "," . $strList . ")";
     }
@@ -1665,7 +1675,7 @@ class sql {
      * @return object the sql object.
      */
     public function orderBy($order) {
-        if ($this->inCondition and!$this->conditionIsTrue)
+        if ($this->inCondition and ! $this->conditionIsTrue)
             return $this;
 
         $order = str_replace(array('|', '', '_'), ' ', $order);

+ 6 - 11
Gameserver/nbproject/private/private.xml

@@ -12,20 +12,15 @@
     </editor-bookmarks>
     <open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
         <group>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/CMemdUtil.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/CRedisUtil.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/CommUtil.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/DebugHelper.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/configs/GameConfig.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/TaskCardVo.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/ErrCode.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/index.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/ErrHandler.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/base/OpeCode.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/TaskProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/test.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/config.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/process/UserProc.php</file>
+            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/util/dao.php</file>
             <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/main.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/test.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/TaskStepVo.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/Services/AppServer.php</file>
-            <file>file:/D:/local_svn/0_ylsj2019/ylsj2019Server/Gameserver/Amfphp/model/User/EnumTaskType.php</file>
         </group>
     </open-files>
 </project-private>