rayanlevert / dotenv
无依赖环境文件处理器 (.env),在 PHP 用户空间中加载 $_ENV、$_SERVER 和 getenv() 中的变量及其值
v2.1.0
2024-07-16 20:45 UTC
Requires
- php: >=8.1
- ext-mbstring: *
Requires (Dev)
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.7
README
通过设置文件路径初始化实例
$oDotenv = new \RayanLevert\Dotenv\Dotenv('/file/to/.dotenv');
如果文件不可读,将抛出异常 RayanLevert\Dotenv\Exception
读取文件内容并在 $_ENV
、$_SERVER
和 getenv()
中加载每个变量的值
$oDotenv->load();
对于每个找到的新行,尝试将等号后面的值设置给变量的名称
TEST_VALUE1=value1 => $_ENV['TEST_VALUE1'] = value1
如果值是原始值,该值将被转换为 PHP 用户空间的类型
NAME=1 => $_ENV['NAME'] = 1 NAME=23.34 => $_ENV['NAME'] = 23.34 (float values will be casted only with a dot .) NAME=true => $_ENV['NAME'] = true NAME=false => $_ENV['NAME'] = false NAME=string value => $_ENV['NAME'] = 'string value'
也支持多行变量! (通过 \n
分隔),使用双引号 ("
)
NAME="This is a variable with multiple lines"
嵌套变量,可以通过相同的文件或 getenv()
(通过操作系统或 docker 等设置) 先前声明
NESTED=VALUE NAME=${NESTED} NAME2=${NESTED}/path $_ENV['NESTED'] = 'VALUE' $_ENV['NAME'] = 'VALUE' $_ENV['NAME2'] = 'VALUE/path'
如果至少有一个变量不在 $_ENV
超全局数组中,将抛出异常 RayanLevert\Dotenv\Exception
$oDotenv->required('FIRST_REQUIRED', 'SECOND_REQUIRED');
如果我们想要应用程序所需的变量,将抛出异常以防止某些逻辑错误