美文网首页
ThinkPHP5 环境变量 .env 文件

ThinkPHP5 环境变量 .env 文件

作者: 爱折腾的傻小子 | 来源:发表于2018-10-29 11:10 被阅读77次
  • .env 文件被加载
# 框架启动加载代码位置 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 文件使用
# .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

相关文章

网友评论

      本文标题:ThinkPHP5 环境变量 .env 文件

      本文链接:https://www.haomeiwen.com/subject/wprfnxtx.html