AutoLoad.php 3.0 KB

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