php 环境变量配置 - xiaogardenz/Work GitHub Wiki

首先创建一个文件.env.example,内容如下

#项目环境 local,dev,test,prod
APP_ENV=local
APP_DEBUG=false

#数据库配置
DB_HOST=
DB_PORT=3306
DB_USER=
DB_PWD=
DB_NAME=
DB_TABLE_PRE=

1、将.env.example文件拷贝生成一份文件名为.env的文件

2、切换到.env.example所在目录,执行下面的命令复制

windows:

copy .env.example .env
linux:

cp .env.example .env

创建环境变量类FileEnv.php

<?php
/**
 * 获取环境变量类
 * Class FileEnv
 */

class FileEnv
{
    /**
     * 获取项目环境变量
     *
     * @param $name
     * @param null $default
     * @return array|bool|false|string|null
     */
    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;
        }

        return $default;
    }

    /**
     * 注入配置项到环境变量
     */
    public static function init()
    {
        if (is_file(rtrim(BASE_ROOT_PATH, '/') . '/.env')) {
            $env = parse_ini_file(rtrim(BASE_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");
                }
            }
        }
    }
}

##最后一步在初始化文件头

define('ENV_PREFIX', 'PHP_'); // 项目环境变量前缀
require 'FileEnv.php';//引入文件
FileEnv::init();//初始化环境变量