From 8e46dc014640a41e401bd0c6fa324df8baf6148e Mon Sep 17 00:00:00 2001 From: Justin Frydman Date: Mon, 24 Jun 2024 21:15:30 -0600 Subject: [PATCH] Add env var support --- src/SuperGlobals/SuperGlobals.php | 17 +++++++++++++++++ tests/Unit/SuperGlobalsTest.php | 14 ++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/src/SuperGlobals/SuperGlobals.php b/src/SuperGlobals/SuperGlobals.php index faa2dfd..ca9d485 100644 --- a/src/SuperGlobals/SuperGlobals.php +++ b/src/SuperGlobals/SuperGlobals.php @@ -67,6 +67,23 @@ public static function get_post_var( string $var, $default = null ) { return static::sanitize_deep( $unsafe ); } + /** + * Gets a value from `$_ENV`. + * + * @since 1.3.0 + * + * @see Arr::get() + * + * @param string $var + * @param mixed $default + * + * @return mixed + */ + public static function get_env_var( string $var, $default = null ) { + $unsafe = Arr::get( (array) $_ENV, $var, $default ); + return static::sanitize_deep( $unsafe ); + } + /** * Gets the requested superglobal variable. * diff --git a/tests/Unit/SuperGlobalsTest.php b/tests/Unit/SuperGlobalsTest.php index c5b9e7a..d22af27 100644 --- a/tests/Unit/SuperGlobalsTest.php +++ b/tests/Unit/SuperGlobalsTest.php @@ -6,6 +6,7 @@ use StellarWP\SuperGlobals\SuperGlobals; final class SuperGlobalsTest extends TestCase { + /** * @test */ @@ -69,6 +70,19 @@ public function it_should_get_var_from_post() { unset( $_POST['bork'] ); } + /** + * @test + */ + public function it_should_get_env_var() { + $_ENV['bork'] = 'my env var'; + + $this->assertEquals( $_ENV['bork'], SuperGlobals::get_env_var( 'bork', 'default' ) ); + $this->assertNotEquals( 'whee', SuperGlobals::get_env_var( 'bork', 'default' ) ); + $this->assertEquals( 'default', SuperGlobals::get_env_var( 'hello', 'default' ) ); + + unset( $_ENV['bork'] ); + } + /** * @test */