Common.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace app\common\behavior;
  3. use think\Config;
  4. use think\Lang;
  5. use think\Loader;
  6. class Common
  7. {
  8. public function appDispatch(&$dispatch)
  9. {
  10. $pathinfoArr = explode('/', request()->pathinfo());
  11. if (!Config::get('url_domain_deploy') && $pathinfoArr && in_array($pathinfoArr[0], ['index', 'api'])) {
  12. //如果是以index或api开始的URL则关闭路由检测
  13. \think\App::route(false);
  14. }
  15. }
  16. public function moduleInit(&$request)
  17. {
  18. // 设置mbstring字符编码
  19. mb_internal_encoding("UTF-8");
  20. // 如果修改了index.php入口地址,则需要手动修改cdnurl的值
  21. $url = preg_replace("/\/(\w+)\.php$/i", '', $request->root());
  22. // 如果未设置__CDN__则自动匹配得出
  23. if (!Config::get('view_replace_str.__CDN__')) {
  24. Config::set('view_replace_str.__CDN__', $url);
  25. }
  26. // 如果未设置__PUBLIC__则自动匹配得出
  27. if (!Config::get('view_replace_str.__PUBLIC__')) {
  28. Config::set('view_replace_str.__PUBLIC__', $url . '/');
  29. }
  30. // 如果未设置__ROOT__则自动匹配得出
  31. if (!Config::get('view_replace_str.__ROOT__')) {
  32. Config::set('view_replace_str.__ROOT__', preg_replace("/\/public\/$/", '', $url . '/'));
  33. }
  34. // 如果未设置cdnurl则自动匹配得出
  35. if (!Config::get('site.cdnurl')) {
  36. Config::set('site.cdnurl', $url);
  37. }
  38. // 如果未设置cdnurl则自动匹配得出
  39. if (!Config::get('upload.cdnurl')) {
  40. Config::set('upload.cdnurl', $url);
  41. }
  42. if (Config::get('app_debug')) {
  43. // 如果是调试模式将version置为当前的时间戳可避免缓存
  44. Config::set('site.version', time());
  45. // 如果是开发模式那么将异常模板修改成官方的
  46. Config::set('exception_tmpl', THINK_PATH . 'tpl' . DS . 'think_exception.tpl');
  47. }
  48. // 如果是trace模式且Ajax的情况下关闭trace
  49. if (Config::get('app_trace') && $request->isAjax()) {
  50. Config::set('app_trace', false);
  51. }
  52. // 切换多语言
  53. if (Config::get('lang_switch_on') && $request->get('lang')) {
  54. \think\Cookie::set('think_var', $request->get('lang'));
  55. }
  56. // Form别名
  57. if (!class_exists('Form')) {
  58. class_alias('fast\\Form', 'Form');
  59. }
  60. }
  61. public function addonBegin(&$request)
  62. {
  63. // 加载插件语言包
  64. Lang::load([
  65. APP_PATH . 'common' . DS . 'lang' . DS . $request->langset() . DS . 'addon' . EXT,
  66. ]);
  67. $this->moduleInit($request);
  68. }
  69. }