di.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. <?php
  2. /**
  3. * DI依赖注入配置文件
  4. *
  5. * @license http://www.phalapi.net/license GPL 协议
  6. * @link http://www.phalapi.net/
  7. * @author dogstar <chanzonghuang@gmail.com> 2017-07-13
  8. */
  9. use PhalApi\Loader;
  10. use PhalApi\Config\FileConfig;
  11. use PhalApi\Logger;
  12. use PhalApi\Logger\FileLogger;
  13. use PhalApi\Database\NotORMDatabase;
  14. use PhalApi\Error\ApiError;
  15. /** ---------------- PhalApi 基本注册 必要服务组件 ---------------- **/
  16. $di = \PhalApi\DI();
  17. // 加载 .env 环境配置
  18. $di->dotenv = Dotenv\Dotenv::createImmutable(API_ROOT);
  19. // .env 非必须的加载
  20. $di->dotenv->safeLoad();
  21. // .env 必须的加载方式
  22. // $di->dotenv->load();
  23. // 配置
  24. $di->config = new FileConfig(API_ROOT . DIRECTORY_SEPARATOR . 'config');
  25. // 调试模式,$_GET['__debug__']可自行改名
  26. $di->debug = !empty($_GET['__debug__']) ? true : $di->config->get('sys.debug');
  27. // 日记纪录
  28. $di->logger = FileLogger::create($di->config->get('sys.file_logger'));
  29. // 数据操作 - 基于NotORM
  30. $di->notorm = new NotORMDatabase($di->config->get('dbs'), $di->config->get('sys.notorm_debug'));
  31. // JSON中文输出
  32. // $di->response = new \PhalApi\Response\JsonResponse(JSON_UNESCAPED_UNICODE);
  33. // 错误处理,如果不需要纪录错误信息可注释
  34. //$di->error = new ApiError();
  35. \App\connectionRedis();
  36. /** ---------------- 第三应用 服务注册 ---------------- **/
  37. // 加载plugins目录下的第三方应用初始化文件
  38. // foreach (glob(API_ROOT . DIRECTORY_SEPARATOR . 'plugins' . DIRECTORY_SEPARATOR . '*.php') as $pluginFile) {
  39. // include_once $pluginFile;
  40. // }
  41. /** ---------------- 当前项目 定制注册 可选服务组件 ---------------- **/
  42. // 签名验证服务
  43. // $di->filter = new \PhalApi\Filter\SimpleMD5Filter();
  44. // 缓存 - Memcache/Memcached
  45. // $di->cache = function () {
  46. // return new \PhalApi\Cache\MemcacheCache(\PhalApi\DI()->config->get('sys.mc'));
  47. // };
  48. // 支持JsonP的返回
  49. // if (!empty($_GET['callback'])) {
  50. // $di->response = new \PhalApi\Response\JsonpResponse($_GET['callback']);
  51. // }
  52. // 切换到页面渲染
  53. // $di->response = new \PhalApi\Response\HtmlResponse();
  54. // 生成二维码扩展,参考示例:?s=App.Examples_QrCode.Png
  55. // $di->qrcode = function() {
  56. // return new \PhalApi\QrCode\Lite();
  57. // };
  58. // 注册扩展的追踪器,将SQL写入日志文件
  59. // $di->tracer = function() {
  60. // return new \App\Common\Tracer();
  61. // };
  62. $di->qiniu = function() {
  63. return new \PhalApi\Qiniu\Lite();
  64. };