# 框架启动加载代码位置 require __DIR__ . '/base.php'; 位置
// 加载环境变量配置文件
# is_file 判断给定文件名是否为一个正常的文件 参看手册
if (is_file(ROOT_PATH . '.env')) {
# parse_ini_file 解析一个配置文件 并已数组的形式返回 参看手册
$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");
}
} else {
putenv("$name=$val");
}
}
}
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2017 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
namespace think;
class Env
{
/**
* 获取环境变量值
* @param string $name 环境变量名(支持二级 .号分割)
* @param string $default 默认值
* @return mixed
*/
public static function get($name, $default = null)
{
$result = getenv(ENV_PREFIX . strtoupper(str_replace('.', '_', $name)));
if (false !== $result) {
if ('false' === $result) {
$result = false;
} elseif ('true' === $result) {
$result = true;
}
return $result;
} else {
return $default;
}
}
}
# .env 第一种形式 定义环境变量
[DATABASES]
root=root
password=123456
[CONFIG]
test=test
# 获取数据
\think\Env::get('databases.root'); // root
\think\Env::get('databases.password'); // 123456
# .env 第二种形式
root=root
password=123456
# 获取数据
\think\Env::get('root'); // root
\think\Env::get('password'); // 123456
网友评论