base.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: liu21st <liu21st@gmail.com>
  10. // +----------------------------------------------------------------------
  11. namespace think;
  12. // 载入Loader类
  13. require __DIR__ . '/library/think/Loader.php';
  14. // 注册自动加载
  15. Loader::register();
  16. // 注册错误和异常处理机制
  17. Error::register();
  18. // 实现日志接口
  19. if (interface_exists('Psr\Log\LoggerInterface')) {
  20. interface LoggerInterface extends \Psr\Log\LoggerInterface
  21. {}
  22. } else {
  23. interface LoggerInterface
  24. {}
  25. }
  26. // 注册核心类到容器
  27. Container::getInstance()->bind([
  28. 'app' => App::class,
  29. 'build' => Build::class,
  30. 'cache' => Cache::class,
  31. 'config' => Config::class,
  32. 'cookie' => Cookie::class,
  33. 'debug' => Debug::class,
  34. 'env' => Env::class,
  35. 'hook' => Hook::class,
  36. 'lang' => Lang::class,
  37. 'log' => Log::class,
  38. 'request' => Request::class,
  39. 'response' => Response::class,
  40. 'route' => Route::class,
  41. 'session' => Session::class,
  42. 'url' => Url::class,
  43. 'validate' => Validate::class,
  44. 'view' => View::class,
  45. 'middlewareDispatcher' => http\middleware\Dispatcher::class,
  46. // 接口依赖注入
  47. 'think\LoggerInterface' => Log::class,
  48. ]);
  49. // 注册核心类的静态代理
  50. Facade::bind([
  51. facade\App::class => App::class,
  52. facade\Build::class => Build::class,
  53. facade\Cache::class => Cache::class,
  54. facade\Config::class => Config::class,
  55. facade\Cookie::class => Cookie::class,
  56. facade\Debug::class => Debug::class,
  57. facade\Env::class => Env::class,
  58. facade\Hook::class => Hook::class,
  59. facade\Lang::class => Lang::class,
  60. facade\Log::class => Log::class,
  61. facade\Request::class => Request::class,
  62. facade\Response::class => Response::class,
  63. facade\Route::class => Route::class,
  64. facade\Session::class => Session::class,
  65. facade\Url::class => Url::class,
  66. facade\Validate::class => Validate::class,
  67. facade\View::class => View::class,
  68. ]);
  69. // 注册类库别名
  70. Loader::addClassAlias([
  71. 'App' => facade\App::class,
  72. 'Build' => facade\Build::class,
  73. 'Cache' => facade\Cache::class,
  74. 'Config' => facade\Config::class,
  75. 'Cookie' => facade\Cookie::class,
  76. 'Db' => Db::class,
  77. 'Debug' => facade\Debug::class,
  78. 'Env' => facade\Env::class,
  79. 'Facade' => Facade::class,
  80. 'Hook' => facade\Hook::class,
  81. 'Lang' => facade\Lang::class,
  82. 'Log' => facade\Log::class,
  83. 'Request' => facade\Request::class,
  84. 'Response' => facade\Response::class,
  85. 'Route' => facade\Route::class,
  86. 'Session' => facade\Session::class,
  87. 'Url' => facade\Url::class,
  88. 'Validate' => facade\Validate::class,
  89. 'View' => facade\View::class,
  90. ]);
  91. // 加载惯例配置文件
  92. facade\Config::set(include __DIR__ . '/convention.php');
  93. // 加载composer autofile文件
  94. Loader::loadComposerAutoloadFiles();