InitConfig.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com
  8. * =========================================================
  9. */
  10. namespace app\event;
  11. use think\facade\Config;
  12. /**
  13. * 初始化配置信息
  14. * @author Administrator
  15. *
  16. */
  17. class InitConfig
  18. {
  19. public function handle()
  20. {
  21. // 初始化常量
  22. $this->initConst();
  23. //初始化配置信息
  24. $this->initConfig();
  25. }
  26. /**
  27. * 初始化常量
  28. */
  29. private function initConst()
  30. {
  31. //加载版本信息
  32. define('SHOP_MODULE', 'shop');
  33. defined('SYS_VERSION_NO') or define('SYS_VERSION_NO', Config::get('info.version')); //版本号
  34. defined('SYS_VERSION_NAME') or define('SYS_VERSION_NAME', Config::get('info.title')); //版本名称
  35. defined('SYS_VERSION') or define('SYS_VERSION', Config::get('info.name')); //版本类型
  36. defined('SYS_RELEASE') or define('SYS_RELEASE', Config::get('info.version_no')); //版本号
  37. //是否展示帮助快捷链接
  38. define('HELP_SHOW', 1);
  39. //加载基础化配置信息
  40. define('__ROOT__', str_replace([ '/index.php', '/install.php' ], '', request()->root(true)));
  41. define('__PUBLIC__', __ROOT__ . '/public');
  42. define('__UPLOAD__', 'upload');
  43. //插件目录名称
  44. define('ADDON_DIR_NAME', 'addon');
  45. //插件目录路径
  46. define('ADDON_PATH', 'addon/');
  47. //分页每页数量
  48. define('PAGE_LIST_ROWS', 30);
  49. define('MEMBER_LEVEL', 30);
  50. //伪静态模式是否开启
  51. define('REWRITE_MODULE', true);
  52. // public目录绝对路径
  53. define('PUBLIC_PATH', dirname(dirname(dirname(__FILE__))) . '/public/');
  54. // 项目绝对路径
  55. define('ROOT_PATH', dirname(dirname(dirname(__FILE__))));
  56. //兼容模式访问
  57. if (!REWRITE_MODULE) {
  58. define('ROOT_URL', request()->root(true) . '/?s=');
  59. } else {
  60. define('ROOT_URL', request()->root(true));
  61. }
  62. //检测网址访问
  63. $url = request()->url(true);
  64. $url = strtolower($url);
  65. if (strstr($url, 'call_user_func_array') || strstr($url, 'invokefunction') || strstr($url, 'think\view')) {
  66. die("非法请求");
  67. }
  68. // 应用模块
  69. $GLOBALS[ 'system_array' ] = [ 'shop', 'install', 'cron', 'api', 'pay', 'public', 'app', 'index', SHOP_MODULE ];
  70. $GLOBALS[ 'app_array' ] = [ 'shop', 'store' ];
  71. }
  72. /**
  73. * 初始化配置信息
  74. */
  75. private function initConfig()
  76. {
  77. $view_array = [
  78. // 模板引擎类型使用Think
  79. 'type' => 'Think',
  80. // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法
  81. 'auto_rule' => 1,
  82. // 模板目录名
  83. 'view_dir_name' => 'view',
  84. // 模板后缀
  85. 'view_suffix' => 'html',
  86. // 模板文件名分隔符
  87. 'view_depr' => DIRECTORY_SEPARATOR,
  88. // 模板引擎普通标签开始标记
  89. 'tpl_begin' => '{',
  90. // 模板引擎普通标签结束标记
  91. 'tpl_end' => '}',
  92. // 标签库标签开始标记
  93. 'taglib_begin' => '{',
  94. // 标签库标签结束标记
  95. 'taglib_end' => '}',
  96. 'tpl_cache' => false, //模板缓存,部署模式后改为true
  97. 'tpl_replace_string' => [
  98. '__ROOT__' => __ROOT__,
  99. '__PUBLIC__' => __PUBLIC__,
  100. 'ROOT_URL' => ROOT_URL,
  101. '__STATIC__' => __PUBLIC__ . '/static',
  102. 'STATIC_EXT' => __PUBLIC__ . '/static/ext',
  103. 'STATIC_CSS' => __PUBLIC__ . '/static/css',
  104. 'STATIC_JS' => __PUBLIC__ . '/static/js',
  105. 'STATIC_IMG' => __PUBLIC__ . '/static/img',
  106. 'HOME_IMG' => __ROOT__ . '/app/home/view/public/img',
  107. 'HOME_CSS' => __ROOT__ . '/app/home/view/public/css',
  108. 'HOME_JS' => __ROOT__ . '/app/home/view/public/js',
  109. 'SHOP_IMG' => __ROOT__ . '/app/shop/view/public/img',
  110. 'SHOP_CSS' => __ROOT__ . '/app/shop/view/public/css',
  111. 'SHOP_JS' => __ROOT__ . '/app/shop/view/public/js',
  112. '__UPLOAD__' => __UPLOAD__,
  113. 'INDEX_IMG' => __ROOT__ . '/app/index/view/public/img',
  114. 'INDEX_CSS' => __ROOT__ . '/app/index/view/public/css',
  115. 'INDEX_JS' => __ROOT__ . '/app/index/view/public/js',
  116. ]
  117. ];
  118. Config::set($view_array, 'view');
  119. }
  120. }