瀏覽代碼

fixed: 修复了CodeGen功能,可以享受优化结果了.嘻嘻.

gwang 4 年之前
父節點
當前提交
d3f78c99f2

文件差異過大導致無法顯示
+ 0 - 0
CodeGen/gamecfg-client.php


+ 1 - 1
CodeGen/gamecfg-ver.php

@@ -1,2 +1,2 @@
 <?php 
- return  unserialize(gzinflate(base64_decode('K7YyNLFSMjIwMjA0NDIBYjNDAyVrAA==')));
+ return  unserialize(gzinflate(base64_decode('K7YyNLFSMjIwMjA0NDIxNDUxMzFUsgYA')));

+ 8 - 1
Gameserver/Amfphp/configs/GameConfig.php

@@ -6,7 +6,7 @@ namespace loyalsoft;
 // 由CodeGenerator创建。
 // Copyright (C) gwang (wanggangzero@qq.com), Loyalsoft@sjz Inc
 // author: gwang 
-// 日期: 2020-11-13 11:48:05
+// 日期: 2020-11-24 15:46:47
 ////////////////////
 
 /**
@@ -48,6 +48,13 @@ class GameConfig {
         if (is_null($a)) {
             if (self::isCG()) {
                 $a = include $key . '.php';
+                if ($isHash) {
+                    $para = is_array($a) ? $a : (array) $a;                     # 转关联数组 
+                    foreach ($para as $name => &$value) {
+                        $value = JsonUtil::decode($value);                      # 取参数中的或者默认值
+                    }
+                    $a = arr2obj($para);
+                }
             } else {
                 $a = $isHash ? gMem()->hgetall($key) : gMem()->get($key);
             }

+ 2 - 2
Gameserver/Amfphp/index.php

@@ -104,9 +104,9 @@ class Index {
 # ....
 # 返回数据, 传输层编码(一律deflate压缩)
         if (php_sapi_name() === 'cli') {
-            
+            # 命令行的就算了, 要不肉眼看不懂了
         } else {
-            $ret = gzdeflate($ret); # 不管请求时使用的是什么方法, 返回时一律使用deflate压缩
+            $ret = gzdeflate($ret);                                             # 不管请求时使用的是什么方法, 返回时一律使用deflate压缩
         }
         $retLen = strlen($ret);                                                 # 计算下返回值长度.
         if ($retLen > (1024 * self::$bigRespInKbs)) {                           # 长度大于50k时记录超大返回值日志.

+ 5 - 7
Gameserver/Amfphp/main.php

@@ -26,10 +26,10 @@ function getRootURL() {
 /**
  * 一种优化方案, 如果部署环境可以支持动态代码生成,将会减少与redis网络通信的次数. 
  * (在云服务器实验中,开了不如不开效率高 ̄□ ̄||,而且文件模式需要在多台机子中分发.-gwang2017)
- * 经验证,复杂逻辑(会多次读取配置信息时)可以有效改善性能. -gwang 2020.11.24
+ * 经验证,复杂逻辑(会多次读取配置信息时)可以有效改善性能. -gwang 2020.11.24 
  * @var boolean (部署环境)是否允许代码生成
  */
-define('CodeGen_Enabled', FALSE)
+define('CodeGen_Enabled', true)
         and CodeGen_Enabled
         and define('CodeGen_Folder', ROOTDIR . '/../../CodeGen/');              # 代码生成功能的输出位置
 
@@ -106,16 +106,14 @@ function Err($err, $msg = "") {
     if (Index::$isDebugging) {                                                  # 组织调试信息       
         Index::$debugMsg .= "<br/><font color='red'>发生错误逻辑中断($err):$msg</font>"; # 错误信息用红色显示    
         Index::$debugMsg .= '<br/>内存分配:' . number_format(memory_get_peak_usage() / 1024) . 'kb,';
-        Index::$debugMsg .= '内存占用:' . number_format(memory_get_usage() / 1024) . 'kb';  # 内存使用数量(kb)
-        $msg = "";
+        Index::$debugMsg .= '内存占用:' . number_format(memory_get_usage() / 1024) . 'kb';  # 内存使用数量(kb) 
     }
-    CLog::err("发生错误直接中断逻辑执行.");
     if (is_string($err)) {                                                      # 防御Err中直接输入字符串的货
-        $msg = $err . $msg;
+        $msg = "发生错误($err)直接中断逻辑执行." . $msg;
         CLog::err($msg);
         $err = ErrCode::err_innerfault;
     }
-    exit(Index::OverPass(Resp::err($err, $msg)));                               # 直接返回错误信息  
+    exit(Index::OverPass(Resp::err($err)));                                     # 直接返回错误信息  
 }
 
 /**

+ 8 - 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-24 11:57:24
+ // 日期: 2020-11-24 15:46:47
 ////////////////////
 
 /**
@@ -44,6 +44,13 @@ class GameConfig {
         if (is_null($a)) {
             if (self::isCG()) {
                 $a = include $key . '.php';
+                if ($isHash) {
+                    $para = is_array($a) ? $a : (array) $a;                     # 转关联数组 
+                    foreach ($para as $name => &$value) {
+                        $value = JsonUtil::decode($value);                      # 取参数中的或者默认值
+                    }
+                    $a = arr2obj($para);
+                }			
             } else {
                 $a = $isHash ? gMem()->hgetall($key) : gMem()->get($key);
             }

+ 1 - 11
Gameserver/Amfphp/model/User/TaskCardVo.php

@@ -50,7 +50,7 @@ class TaskCardVo extends Object_ext {
     }
 
     public function __construct($args = 0) {
-        if (self::isInt($args)) {
+        if (isInt($args)) {
             $this->typeId = $args;
             $arr = array();
             $cfg = GameConfig::item_taskcard_getItem($this->typeId);
@@ -60,18 +60,8 @@ class TaskCardVo extends Object_ext {
             }
             $this->curSteps = $arr;
         } else {
-
             parent::__construct($args);
         }
     }
 
-    static function isInt($var) {
-        $int = intval($var);
-        if ((string) $int === (string) $var) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
 }

+ 1 - 10
Gameserver/Amfphp/model/User/TaskStepVo.php

@@ -38,17 +38,8 @@ class TaskStepVo extends Object_ext {
         return $mo;
     }
 
-    static function isInt($var) {
-        $int = intval($var);
-        if ((string) $int === (string) $var) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
     public function __construct($args) {
-        if (self::isInt($args)) {
+        if (isInt($args)) {
             $this->typeId = $args;
         } else {
             parent::__construct($args);

+ 2 - 1
Gameserver/Amfphp/test.php

@@ -4,8 +4,8 @@ namespace loyalsoft;
 
 include __DIR__ . '/main.php';
 echoLine("phpver: " . PHP_VERSION . PHP_EOL);
-SelfChecker::CheckAll();
 
+//SelfChecker::CheckAll();
 //
 //set_time_limit(15);                                                           # 设置执行超时时间
 //
@@ -16,3 +16,4 @@ SelfChecker::CheckAll();
 
 
 
+var_dump(GameConfig::primordial_data());

+ 22 - 0
Gameserver/Amfphp/util/CommUtil.php

@@ -168,6 +168,19 @@ class CommUtil {
         return count((array) $var);
     }
 
+    /**
+     * 兼容数值和字符串两种类型的变量,都可认为是int值. 
+     * @param type $var
+     * @return boolean
+     */
+    static function isInt($var) {
+        if (is_numeric($var) || is_string($var)) {
+            $int = intval($var);
+            return (string) $int === (string) $var;
+        }
+        return false;
+    }
+
     /**
      * 字符串包含判定
      * @param type $string 完整字符串
@@ -322,6 +335,15 @@ function ArrayInit() {
     return array();
 }
 
+/**
+ * 自己写的int判断,相比于系统的要更私人定制化一点,兼容识别字符串类型的变量.(wanggangzero@qq.com)2020年11月24日14:33:02
+ * @param type $var
+ * @return type
+ */
+function isInt($var) {
+    return CommUtil::isInt($var);
+}
+
 /**
  * 是否处于编辑器中,辅助智能感知代码的 gwang(⊙ω⊙)
  * @return bool 是否处于编辑器中

部分文件因文件數量過多而無法顯示