Loads contents from a .env
file into the environment. PHP 8.1
requires composer
composer.json (note: replace dev-main
with a version constraint, e.g. ^3.0
)
{
"require": {
"php": "^8.1",
"chillerlan/php-dotenv": "dev-main"
}
}
Installation via terminal: composer require chillerlan/php-dotenv
Profit!
# example .env
FOO=bar
BAR=foo
WHAT=${BAR}-${FOO}
$env = new DotEnv(__DIR__.'/../config', '.env');
$env->load(['foo']); // foo is required
// get a variable
$foo = $_ENV['FOO']; // -> bar
$foo = $env->get('FOO'); // -> bar
$foo = $env->FOO; // -> bar
// dynamically set a variable
$env->set('foo', 'whatever');
$env->FOO = 'whatever';
$foo = $env->get('FOO'); // -> whatever
// ...
// variable substitution
$foo = $env->get('WHAT'); // -> foo-bar
// avoid the global environment
$env = (new DotEnv(__DIR__.'/../config', '.env', false))->load();
$foo = $_ENV['FOO']; // -> undefined
$foo = $env->get('FOO'); // -> bar
$foo = $env->FOO; // -> bar