读取、解析和修改环境变量

1.0 2023-12-19 09:24 UTC

This package is auto-updated.

Last update: 2024-09-19 12:43:25 UTC


README

Latest Packagist Version Latest Packagist License

读取、解析和修改环境变量

安装

您可以通过composer安装此库

composer require into-the-void/env

示例

use IntoTheVoid\Env\Env;

getenv('APP_DEBUG');   // string(4) "true"
Env::get('APP_DEBUG'); // bool(true)

getenv('DB_PORT');     // string(4) "5432"
Env::get('DB_PORT');   // int(5432)

Env::getString('DB_HOST'); // string(9) "localhost"
Env::getBool('APP_DEBUG'); // bool(true)
Env::getInt('DB_PORT');    // int(5432)
Env::getFloat('APP_MUL');  // double(1.25)
Env::getList('PATH', ':'); // array(2) { "/usr/local/bin", "/usr/bin" }

Env::has('DB_PORT');       // bool(true)
Env::set('DB_PORT', 3306);
Env::remove('DB_PORT');

您也可以使用辅助函数代替调用Env::get()

use function IntoTheVoid\Env\env;

env('APP_DEBUG'); // bool(true)

行为

Env::getBool('NO_SUCH_VAR');         // NULL
Env::getRequiredBool('NO_SUCH_VAR'); // Fatal error: MissingEnvironmentVariable

Env::getBool('NOT_A_BOOL');                // Fatal error: UnparsableValue
Env::getBool('NOT_A_BOOL', strict: false); // NULL

存储库

默认情况下,环境变量通过getenv(local_only: true)getenv()读取。它们通过putenv()$_ENV$_SERVER写入。

您可以使用Env::setRepository()更改此行为。请查看src/Repository以获取可用的存储库。

标准化器

如果您想从环境变量中删除空格或引号,则可以通过Env::setNormalizer()进行配置。请查看src/Normalizer以获取可用的标准化器。

默认情况下不执行此操作,因为您的环境变量不应包含任何不需要的空格或引号。如果它们确实存在,您可能应该修复这些环境变量的声明。

解析器

空值(不区分大小写):'''null''nil''none''undefined''empty'
真值(不区分大小写):'1''true''y''yes''on'
假值(不区分大小写):'0''false''n''no''off'

许可证

版权(C)Oliver Amann

本项目采用MIT许可证(MIT)。有关更多信息,请参阅LICENSE