压入环境变量的时候顺手压入到$_ENV里面。
// 加载环境变量配置文件
if (is_file(ROOT_PATH . '.env')) {
$env = parse_ini_file(ROOT_PATH . '.env', true);
foreach ($env as $key => $val) {
$name = ENV_PREFIX . strtoupper($key);
if (is_array($val)) {
foreach ($val as $k => $v) {
$item = $name . '_' . strtoupper($k);
putenv("$item=$v");
$_ENV[$item] = $v;
}
} else {
putenv("$name=$val");
$_ENV[$name] = $v;
}
}
}
获取的代码稍微改动一点点。
class Env
{
/**
* 获取环境变量值
* @param string $name 环境变量名(支持二级 .号分割)
* @param string $default 默认值
* @return mixed
*/
public static function get($name, $default = null)
{
$key = ENV_PREFIX . strtoupper(str_replace('.', '_', $name));
$result = isset($_ENV[$key]) ? $_ENV[$key] : getenv($key);
if (false !== $result) {
return $result;
} else {
return $default;
}
}
}