From 90cba517cb571d0d5dd0a4c77cb74387e3c58bc2 Mon Sep 17 00:00:00 2001 From: Maarten Date: Thu, 13 Feb 2020 19:21:27 +0100 Subject: [PATCH] Update Env class --- src/Runtime/Config/Env.php | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/Runtime/Config/Env.php b/src/Runtime/Config/Env.php index 5f6db01..529d97e 100644 --- a/src/Runtime/Config/Env.php +++ b/src/Runtime/Config/Env.php @@ -15,26 +15,29 @@ class Env { $dotenv = Dotenv::createImmutable('../'); $dotenv->load(); - $result = getenv(strtoupper($key)); - - return self::filter($result); + return self::filter($dotenv, $key); } /** - * @param string $result + * @param Dotenv $dotenv + * @param string $key * @return mixed */ - private static function filter(string $result) + private static function filter($dotenv, string $key) { - switch ($result) { - case in_array($result, ['true', 'false']): - return filter_var($result, FILTER_VALIDATE_BOOLEAN); - break; - case filter_var($result, FILTER_VALIDATE_INT): - return (int) $result; - break; - default: - return $result; + $key = strtoupper($key); + if (!$dotenv->ifPresent($key)) return false; + + $result = getenv($key); + + if($dotenv->required($key)->isBoolean()) { + return filter_var($result, FILTER_VALIDATE_BOOLEAN); + } + else if($dotenv->required($key)->isInteger()) { + return (int) $result; + } + else { + return $result; } }