Skip to content

balint-horvath/dotenv-php

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotenv

Simple .env file parser and ENV loader (.env to getenv() and $_ENV) based on standard PHP INI parser (parse_ini_file).

Version 1.0 Build Passing PHP 7.0

balint-horvath/dotenv-php balint-horvath/dotenv-php

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'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:

    $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\