Env.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. /**
  3. * 环境变量
  4. *
  5. * @author mybsdc <[email protected]>
  6. * @date 2019/6/2
  7. * @time 17:28
  8. */
  9. namespace Luolongfei\Libs;
  10. use Dotenv\Dotenv;
  11. class Env extends Base
  12. {
  13. /**
  14. * @var array 环境变量值
  15. */
  16. protected $allValues;
  17. public function init($fileName = '.env')
  18. {
  19. $this->allValues = file_exists($fileName) ? Dotenv::create(ROOT_PATH, $fileName)->load() : [];
  20. }
  21. public function get($key = '', $default = null)
  22. {
  23. if (!strlen($key)) { // 不传 key 则返回所有环境变量
  24. return $this->allValues;
  25. }
  26. $value = getenv($key);
  27. if ($value === false) {
  28. return $default;
  29. }
  30. switch (strtolower($value)) {
  31. case 'true':
  32. case '(true)':
  33. return true;
  34. case 'false':
  35. case '(false)':
  36. return false;
  37. case 'empty':
  38. case '(empty)':
  39. return '';
  40. case 'null':
  41. case '(null)':
  42. return null;
  43. }
  44. if (($valueLength = strlen($value)) > 1 && $value[0] === '"' && $value[$valueLength - 1] === '"') { // 去除双引号
  45. return substr($value, 1, -1);
  46. }
  47. return $value;
  48. }
  49. }