AutoLoad.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace loyalsoft;
  3. /**
  4. * 加载处理类
  5. * @version
  6. * 1.0.0 Created at 2017-2-14. by --gwang
  7. * @author gwang (mail@wanggangzero.cn)
  8. * @copyright ? 2017-2-14, SJZ LoyalSoft Corporation & gwang. All rights reserved.
  9. */
  10. class AutoLoad {
  11. /**
  12. * 初始化代码自动载入功能
  13. */
  14. static public function Init() {
  15. static $a = true; # 利用静态变量, 避免重复执行
  16. if ($a) {
  17. static $incs = array(# # 指定框架查找路径
  18. ROOTDIR . '/util/', # # 常用辅助代码
  19. ROOTDIR . '/process/', # # 逻辑处理代码
  20. ROOTDIR . '/model/User/', # # 数据结构定义
  21. ROOTDIR . '/process/ActiveProc/',
  22. ROOTDIR . '/Services/',
  23. );
  24. if (defined("CodeGen_Folder")) {
  25. $incs[] = CodeGen_Folder;
  26. }
  27. $incPath = get_include_path() . PATH_SEPARATOR . join(PATH_SEPARATOR, $incs);
  28. set_include_path($incPath);
  29. // var_dump(get_include_path());
  30. static $ns = __NAMESPACE__; # 当前命名空间(loyalsoft)
  31. spl_autoload_register(function ($className) use ($ns) { # 框架: 添加自动加载功能
  32. if (strncmp($className, $ns, strlen($ns)) == 0) { # 过滤: 符合当前命名空间的类
  33. include str_replace("$ns\\", '', $className) . '.php'; # 约定: 文件名要剔除命名空间
  34. }
  35. }, true, true);
  36. $a = false;
  37. }
  38. }
  39. }
  40. # 预加载一部分常用的代码.
  41. require_once ROOTDIR . '/../globals.php'; # 导入全局配置
  42. require_once ROOTDIR . '/configs/GameConstants.php'; # 导入游戏基础常量定义
  43. require_once ROOTDIR . '/configs/GameConfig.php'; # 导入游戏静态数据
  44. require_once ROOTDIR . '/config.php'; # 服务器配置数据
  45. require_once ROOTDIR . '/base/Include.php'; # 导入框架基础对象
  46. require_once ROOTDIR . '/util/UtilInclude.php'; # 一部分Utils直接预加载
  47. require_once ROOTDIR . '/process/UserProc.php'; # 玩家处理逻辑
  48. //require_once ROOTDIR . '/process/FightProc/PVPProc.php'; # (userproc中引用到了)
  49. //require_once ROOTDIR . '/process/EventProc/CornerSignEventProc.php'; # 角标更新各处插入
  50. //require_once ROOTDIR . '/process/EventProc/NormalEventProc.php'; # 2020年12月新版事件系统
  51. require_once ROOTDIR . '/model/User/Data_UserGame.php'; # 游戏数据
  52. //require_once ROOTDIR . '/model/User/Data_UserProfile.php'; # 玩家画像
  53. AutoLoad::Init(); // 直接执行初始化