Lang.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. /**
  3. * 语言包加载
  4. *
  5. * @author mybsdc <[email protected]>
  6. * @date 2020/1/16
  7. * @time 16:30
  8. */
  9. namespace Luolongfei\Lib;
  10. class Lang
  11. {
  12. /**
  13. * @var Lang
  14. */
  15. protected static $instance;
  16. /**
  17. * @var array
  18. */
  19. public $lang;
  20. public function __construct()
  21. {
  22. $this->lang = require sprintf('%s/lang/%s.php', RESOURCES_PATH, config('locale'));
  23. }
  24. /**
  25. * @param string $key
  26. *
  27. * @return array|mixed|null
  28. */
  29. public function get($key = '')
  30. {
  31. $lang = $this->lang;
  32. if (strlen($key)) {
  33. if (strpos($key, '.')) {
  34. $keys = explode('.', $key);
  35. $val = $lang;
  36. foreach ($keys as $k) {
  37. if (!isset($val[$k])) {
  38. return null; // 任一下标不存在就返回null
  39. }
  40. $val = $val[$k];
  41. }
  42. return $val;
  43. } else {
  44. if (isset($lang[$key])) {
  45. return $lang[$key];
  46. }
  47. return null;
  48. }
  49. }
  50. return $lang;
  51. }
  52. /**
  53. * @return Lang
  54. */
  55. public static function instance()
  56. {
  57. if (!self::$instance instanceof self) {
  58. self::$instance = new self();
  59. }
  60. return self::$instance;
  61. }
  62. }