Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 
 

76 rader
2.1 KiB

  1. <?php
  2. namespace Kuxin;
  3. /**
  4. * Class DI
  5. *
  6. * @package Kuxin
  7. * @author Pakey <pakey@qq.com>
  8. */
  9. class DI
  10. {
  11. /**
  12. * @param string $onnection
  13. * @return \Kuxin\Cache
  14. */
  15. public static function Cache(?string $onnection = 'common'): \Kuxin\Cache
  16. {
  17. $hanlder = Registry::get("cache.{$onnection}");
  18. if (!$hanlder) {
  19. $config = Config::get("cache.{$onnection}");
  20. if ($config) {
  21. $hanlder = Loader::instance('\\Kuxin\\Cache', [$config]);
  22. if ($hanlder) {
  23. Registry::set("cache.{$onnection}", $hanlder);
  24. }
  25. } else {
  26. trigger_error("缓存节点配置[{$onnection}]不存在", E_USER_ERROR);
  27. }
  28. }
  29. return $hanlder;
  30. }
  31. /**
  32. * @param string $node
  33. * @return \Kuxin\Storage
  34. */
  35. public static function Storage(string $node = 'common'): \Kuxin\Storage
  36. {
  37. $hanlder = Registry::get("storage.{$node}");
  38. if (!$hanlder) {
  39. $config = Config::get("storage.{$node}");
  40. if ($config) {
  41. $hanlder = Loader::instance('\\Kuxin\\Storage', [$config]);
  42. if ($hanlder) {
  43. Registry::set("storage.{$node}", $hanlder);
  44. }
  45. } else {
  46. trigger_error("Storage节点配置[{$node}]不存在", E_USER_ERROR);
  47. }
  48. }
  49. return $hanlder;
  50. }
  51. /**
  52. * @param string $node
  53. * @return \Kuxin\Db\Mysql
  54. */
  55. public static function DB(string $node = 'common'): \Kuxin\Db\Mysql
  56. {
  57. $hanlder = Registry::get("db.{$node}");
  58. if (!$hanlder) {
  59. $config = Config::get("database.{$node}");
  60. if ($config) {
  61. $hanlder = Loader::instance('\\Kuxin\Db\\' . $config['driver'], [$config['option']]);
  62. if ($hanlder) {
  63. Registry::set("storage.{$node}", $hanlder);
  64. }
  65. } else {
  66. trigger_error("Db节点配置[{$node}]不存在", E_USER_ERROR);
  67. }
  68. }
  69. return $hanlder;
  70. }
  71. }