原生PHP获取.env文件的值

一、composer拉取包

composer require millionmile/get_env

第一步很简单吧?接着第二步


二、引用Env类

1. 自动加载autoload

require_once __DIR__ . '/vendor/autoload.php';

如果已经自动加载过,自然无需执行上面代码


2. 获取env内的值

MillionMile\GetEnv\Env::get('database.hostname','default_value');

get函数中的第一个参数是.env文件中的字段键名(如果是方括号下内容,则使用.来做分隔符)
第二个参数是当找不到对应的.env配置值的话,使用的默认值。如果不填,则为null


3. 奇葩env

如果你的环境配置文件不是叫.env,并且如果它不是在项目根目录,那么请使用下面代码自己加载该环境配置文件的内容

try {
    
    
    MillionMile\GetEnv\Env::loadFile('your_env_file_path');
} catch (Exception $e) {
    
    
    echo $e->getMessage();
    exit;
}

之后就可以正常使用get方法去获取配置值了。


三、使用示例


文件 .env:

test_1 ='a'

[database]
hostname=127.0.0.1

test_2 ='b'

文件 test.php:

<?php
require_once __DIR__ . '/vendor/autoload.php';

use MillionMile\GetEnv\Env;

try {
    
    
    Env::loadFile('.env');
} catch (Exception $e) {
    
    
    echo $e->getMessage();
    exit;
}
echo Env::get('test_1', 'default_value'), PHP_EOL;              //文件开头,没有在任何[xxxx]下,那么无需前缀
echo Env::get('database.hostname', 'default_value'), PHP_EOL;   //获取[database]下的hostname字段
echo Env::get('test_2', 'default_value'), PHP_EOL;              //在[database]下(不管是否换行),需要加前缀 database. 才能正确获取
echo Env::get('noexist_name', 'default_value'), PHP_EOL;        //不存在的值,获取不到,使用默认值default_value

示例结果:

a
127.0.0.1
default_value
default_value

猜你喜欢

转载自blog.csdn.net/weixin_38125045/article/details/109100324