balint-horvath / dotenv-php
Simple .env file parser and ENV loader (.env to getenv() and $_ENV) based on standard PHP INI parser (parse_ini_file).
Installs: 399
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/balint-horvath/dotenv-php
Requires
- php: >=7.0
Requires (Dev)
- kahlan/kahlan: ^4.0
This package is not auto-updated.
Last update: 2025-10-26 11:05:34 UTC
README
Simple .env file parser and ENV loader (.env to getenv() and $_ENV) based on standard PHP INI parser (parse_ini_file).
Supported methods:
- getenv(variable)
- getenv(section_variable)
- $_ENV[variable]
- $_ENV[section_variable]
- $dotenv->variable
- $dotenv->section->variable
- $dotenv[variable]
- $dotenv[section][variable]
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:
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\
Class: DotEnv
new \BalintHorvath\DotEnv\DotEnv($path)
Properties
(string)path: Directory of .env file or full path to your ini file. (default:../../../)(bool)setEnvironmentVariables: If it'strue, variables will be available via environment ($_ENV,getenv()), otherwise (iffalse) they'll be available only via the DotEnv as object or array ($dotenv->$dotenv[]). (default:true)(bool)processSections: If it'strue, variables will be organized under sections ($dotenv->section$dotenv[section]), otherwise sections will have no matter. (default:true)(bool)scannerMode: If it'sINI_SCANNER_TYPED, values0/off/"false"/falsewill becomeboolfalse, values1/on/"true"/truewill becomebooltrue. Can either beINI_SCANNER_NORMALorINI_SCANNER_RAW. IfINI_SCANNER_RAWis 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:
$dotenv->{variable} $dotenv->{section}->{variable}
Example:
$dotenv->API->apiUser
API User: <?=$dotenv->API->apiUser?> API Key: <?=$dotenv->API->apiKey?>
ENV Access ($_ENV)
Usage:
$_ENV['{variable}'] $_ENV['{section}']['{variable}']
Example:
$_ENV['API_apiUser']
API User: <?=$_ENV['API_apiUser']?> API Key: <?=$_ENV['API_apiKey']?>
ENV Access (getenv)
Usage:
getenv('variable') getenv('section_variable')
Example:
getenv('API_apiUser')
API User: <?=getenv('API_apiUser')?> API Key: <?=getenv('API_apiKey')?>
Array Access
Usage:
$dotenv[{variable}] $dotenv[{section}][{variable}]
Example:
$dotenv['API']['apiUser']
API User: <?=$dotenv['API']['apiUser']?> API Key: <?=$dotenv['API']['apiKey']?>
Dependencies
Developer Dependencies
- Kahlan 4 (kahlan/kahlan:^4.0)
Unit & BDD Test
This package has included test cases for Kahlan.
PSR
PSR-4 Autoload
- \BalintHorvath\DotEnv\