EnvVar.php 732 B

12345678910111213141516171819202122232425262728293031
  1. <?php
  2. declare(strict_types=1);
  3. namespace AsyncAws\Core;
  4. /**
  5. * Helper to safely read environment variables.
  6. *
  7. * @author Jérémy Derussé <jeremy@derusse.com>
  8. *
  9. * @internal
  10. */
  11. final class EnvVar
  12. {
  13. public static function get(string $name): ?string
  14. {
  15. if (isset($_ENV[$name])) {
  16. // variable_order = *E*GPCS
  17. return (string) $_ENV[$name];
  18. } elseif (isset($_SERVER[$name]) && !\is_array($_SERVER[$name]) && 0 !== strpos($name, 'HTTP_')) {
  19. // fastcgi_param, env var, ...
  20. return (string) $_SERVER[$name];
  21. } elseif (false === $env = getenv($name)) {
  22. // getenv not thread safe
  23. return null;
  24. }
  25. return $env;
  26. }
  27. }