AutoLoad.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. */
  15. static public function Init()
  16. {
  17. static $a = true; # 利用静态变量, 避免重复执行
  18. if ($a) {
  19. static $incs = array(# # 指定框架查找路径
  20. ROOTDIR . '/Util/', # # 常用辅助代码
  21. ROOTDIR . '/Process/', # # 逻辑处理代码
  22. ROOTDIR . '/Model/User/', # # 数据结构定义
  23. );
  24. $incPath = get_include_path() . PATH_SEPARATOR . join(PATH_SEPARATOR, $incs);
  25. set_include_path($incPath);
  26. // var_dump(get_include_path());
  27. static $ns = __NAMESPACE__; # 当前命名空间(loyalsoft)
  28. spl_autoload_register(function ($className) use($ns) { # 框架: 添加自动加载功能
  29. if (strncmp($className, $ns, strlen($ns)) == 0) { # 过滤: 符合当前命名空间的类
  30. include str_replace("$ns\\", '', $className) . '.php'; # 约定: 文件名要剔除命名空间
  31. }
  32. }, true, true);
  33. $a = false;
  34. }
  35. }
  36. }
  37. # 预加载一部分常用的代码.
  38. require_once ROOTDIR . '/../globals.php'; # 导入全局配置
  39. require_once ROOTDIR . '/Configs/GameConstants.php'; # 导入游戏基础常量定义
  40. require_once ROOTDIR . '/Configs/GameConfig.php'; # 导入游戏静态数据
  41. require_once ROOTDIR . '/config.php'; # 服务器配置数据
  42. require_once ROOTDIR . '/Util/UtilInclude.php'; # 一部分Utils直接预加载
  43. require_once ROOTDIR . '/Process/vo/Include.php'; # 导入框架vo
  44. require_once ROOTDIR . '/Process/PreProc.php'; # 预加载逻辑
  45. require_once ROOTDIR . '/Process/UserProc.php'; # 玩家处理逻辑
  46. require_once ROOTDIR . '/Process/FightProc/PVPProc.php'; # (userproc中引用到了)
  47. require_once ROOTDIR . '/Model/User/UserInfoMo.php'; # 玩家全部数据模型
  48. require_once ROOTDIR . '/Model/User/UserGameModel.php'; # 游戏数据
  49. require_once ROOTDIR . '/Model/User/UserProfile.php'; # 玩家画像
  50. require_once ROOTDIR . '/Model/User/GuildModel.php';
  51. AutoLoad::Init(); // 直接执行初始化