[PHP] 框架中.env文件的加载过程

前端之家收集整理的这篇文章主要介绍了[PHP] 框架中.env文件的加载过程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

现在很多框架使用根目录的.env文件来配置环境变量,PHP本身是不会去解析这个文件的,需要使用PHP代码读取和解析这个文件放入环境变量中

例如查看thinkPHP中.env文件的加载过程,使用下面这个strace命令查看fpm进程stat文件状态的过程

strace $(pidof 'PHP-fpm'|sed 's/\([0-9]*\)/-p \1/g') -e stat -s 1024

返回的这条,就是在查看.env文件是否存在

[pid 11692] stat("/data1/mailLog/public/PHPdev/xxx/xxx/.env",0x7fff6ba5f9f0) = -1 ENOENT (No such file or directory)

处理的代码是这几句

if (is_file(ROOT_PATH . '.env')) {
    $env = parse_ini_file(ROOT_PATH . '.env',true);

    foreach ($env as $key => $val) {
        $name = ENV_PREFIX . strtoupper($key);

        is_array()) {
            $val $k => $v) {
                $item = $name . '_' . $k);
                putenv("$item=$v");
            }
        } else {
            $name=$val");
        }
    }
}

 

猜你在找的PHP相关文章