dotenv
Simple .env file parser and ENV loader (.env
to getenv()
and $_ENV
) based on standard PHP INI parser (parse_ini_file)., (*1)
, (*2)
, (*3)
Supported methods:
- getenv(variable)
- getenv(section_variable)
- $_ENV[variable]
- $_ENV[section_variable]
- $dotenv->variable
- $dotenv->section->variable
- $dotenv[variable]
- $dotenv[section][variable], (*4)
Examples
Installation
To install this library, you need to use Composer in your project. If you are not using Composer yet, here's how to install:, (*5)
curl -sS https://getcomposer.org/installer | php
via Composer
composer require balint-horvath/dotenv-php
Phar
php composer.phar require balint-horvath/dotenv-php
Example Environment File (INI) (.env)
#.env
[API]
apiUser = User
apiKey = Key
Usage (Instance)
Class
Namespace: \BalintHorvath\DotEnv\
, (*6)
Class: DotEnv
, (*7)
new \BalintHorvath\DotEnv\DotEnv($path)
Properties
-
(string)
path: Directory of .env file or full path to your ini file. (default: ../../../
)
-
(bool)
setEnvironmentVariables: If it's true
, variables will be available via environment ($_ENV
, getenv()
), otherwise (if false
) they'll be available only via the DotEnv as object or array ($dotenv->
$dotenv[]
). (default: true
)
-
(bool)
processSections: If it's true
, variables will be organized under sections ($dotenv->section
$dotenv[section]
), otherwise sections will have no matter. (default: true
)
-
(bool)
scannerMode: If it's INI_SCANNER_TYPED
, values 0
/off
/"false"
/false
will become bool
false
, values 1
/on
/"true"
/true
will become bool
true
. Can either be INI_SCANNER_NORMAL
or INI_SCANNER_RAW
. If INI_SCANNER_RAW
is supplied, then option values will not be parsed.
(See PHP Manual: parse_ini_file and PHP Manual: Predefined Constants for more.)
(default: INI_SCANNER_TYPED
)
Example
define('APP_DIR', dirname(__FILE__) . '/');
require 'vendor/autoload.php';
$dotenv = new \BalintHorvath\DotEnv\DotEnv(APP_DIR);
Getting environment variables
Object Access
Usage:, (*8)
$dotenv->{variable}
$dotenv->{section}->{variable}
Example:, (*9)
$dotenv->API->apiUser
API User: <?=$dotenv->API->apiUser?>
API Key: <?=$dotenv->API->apiKey?>
ENV Access ($_ENV)
Usage:, (*10)
$_ENV['{variable}']
$_ENV['{section}']['{variable}']
Example:, (*11)
$_ENV['API_apiUser']
API User: <?=$_ENV['API_apiUser']?>
API Key: <?=$_ENV['API_apiKey']?>
## ENV Access (getenv)
**Usage:**
```php
getenv('variable')
getenv('section_variable')
**Example:**
getenv('API_apiUser')
```php
API User: <?=getenv('API_apiUser')?>
API Key: <?=getenv('API_apiKey')?>
## Array Access
**Usage:**
```php
$dotenv[{variable}]
$dotenv[{section}][{variable}]
**Example:**
$dotenv['API']['apiUser']
```php
API User: <?=$dotenv['API']['apiUser']?>
API Key: <?=$dotenv['API']['apiKey']?>
Dependencies
Developer Dependencies
Unit & BDD Test
This package has included test cases for Kahlan., (*12)
PSR
PSR-4 Autoload