rayanlevert / dotenv
Dependency-free environment file handler (.env) loading variables and its values in $_ENV, $_SERVER and getenv() in the PHP userland
v2.0.2
2023-12-01 15:27 UTC
Requires
- php: >=8.1
- ext-mbstring: *
Requires (Dev)
- phpstan/phpstan: ^1.9
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.7
README
Initializes the instance setting the file path
$oDotenv = new \RayanLevert\Dotenv\Dotenv('/file/to/.dotenv');
An exception RayanLevert\Dotenv\Exception
will be thrown if the file is not readable
Reads the file content and loads in $_ENV
, $_SERVER
et getenv()
, values of each variable
$oDotenv->load();
For each new line found, tries to set to the name of the variable its value after the =
sign
TEST_VALUE1=value1 => $_ENV['TEST_VALUE1'] = value1
If the value is a primitive value, the value will be casted to the PHP
userland
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'
Multiline variables are also available ! (separated by \n
), double quotes ("
) will be used
NAME="This is a variable with multiple lines"
Nested variables, declared beforehand via the same file or getenv()
(set via the OS or docker for example)
NESTED=VALUE NAME=${NESTED} NAME2=${NESTED}/path $_ENV['NESTED'] = 'VALUE' $_ENV['NAME'] = 'VALUE' $_ENV['NAME2'] = 'VALUE/path'
Throw an RayanLevert\Dotenv\Exception
if at least one variable is not present in the $_ENV
superglobal
$oDotenv->required(['FIRST_REQUIRED', 'SECOND_REQUIRED']);
Worth if we want required variables for application purposes, an exception will be thrown to prevent some logic error