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).

1.0.0 2017-10-23 19:30 UTC

This package is not auto-updated.

Last update: 2024-11-10 05:51:13 UTC


README

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\