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