feat: support quotes trailing spaces

master
Guillermo Pages 3 years ago
parent 23348743ee
commit ea391f32c8

@ -21,19 +21,39 @@ class DotEnv {
? [$parts[0], implode('=', array_slice($parts, 1))] ? [$parts[0], implode('=', array_slice($parts, 1))]
: $parts : $parts
); );
$vars[$varname] = $value; $trimmedValue = trim($value);
$vars[trim($varname)] = self::removeOuterQuotes($trimmedValue);
return $vars; return $vars;
}, []); }, []);
return $envvars; return $envvars;
} }
public static function MUTATE_SERVER_addEnvVars(array $variables) { public static function removeOuterQuotes(string $string, $quote = "'"): string {
$_SERVER = array_merge($_SERVER, $variables); $lastCharIndex = strlen($string) - 1;
$stringWithoutOuterQuotes = strpos($string, $quote) === 0 && strpos($string, $quote, -1) === $lastCharIndex
? substr($string, 1, $lastCharIndex)
: $string;
if ($quote === '"') {
return $stringWithoutOuterQuotes;
}
$noQuotesRemoved = strlen($stringWithoutOuterQuotes) === strlen($string);
if ($noQuotesRemoved && $quote === "'") {
return self::removeOuterQuotes($string, '"');
}
return $stringWithoutOuterQuotes;
}
public static function MUTATE_ENV_addEnvVars(array $variables) {
$_ENV = array_merge($_ENV, $variables);
} }
public static function load(string $rootDir) { public static function load(string $rootDir) {
$envvars = self::loadFromFile($rootDir . DIRECTORY_SEPARATOR . '.env'); $envvars = self::loadFromFile($rootDir . DIRECTORY_SEPARATOR . '.env');
self::MUTATE_SERVER_addEnvVars($envvars); self::MUTATE_ENV_addEnvVars($envvars);
} }
} }
Loading…
Cancel
Save