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();//初始化环境变量