Skip to content

DarlanSchmeller/php-env-loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🪴 PHP Env Loader .env

PHP Packagist License PHP Composer CI

A lightweight, object-oriented PHP library to load .env files into $_ENV with automatic type casting and quote handling. Perfect for small projects, scripts, or when you want a simple alternative to vlucas/phpdotenv.

Features

  • Load .env files into $_ENV automatically
  • Supports export keyword
  • Inline comment handling (# comment)
  • Quote string handling ("string" or 'string')
  • Automatic type casting:
    • "true" / "false"bool
    • Numeric strings → int or float
    • "null"null
  • Static helper method for convenience
  • Comprehensive PHPUnit test coverage

Installation

Via Composer (recommended)

composer require darlanschmeller/php-env-loader

Include in your project:

require __DIR__ . '/vendor/autoload.php';

use DarlanSchmeller\EnvLoader\EnvLoader;

From source (for development only)

git clone https://github.com/DarlanSchmeller/php-env-loader.git

Include in your project:

require __DIR__ . '/src/EnvLoader.php';

use DarlanSchmeller\EnvLoader\EnvLoader;

Usage

Basic Usage

$env = new EnvLoader(); // Defaults to '../.env'
$variables = $env->load();

var_dump($variables); // Loaded env variables
var_dump($_ENV);      // Also accessible globally

Static Convenience

If you just want to load a .env without instantiating the class:

$variables = EnvLoader::loadFrom(__DIR__ . '/.env');

Sample .env

DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_PASSWORD="supersecret"
APP_DEBUG=true
TIMEOUT=5.5

After loading

$_ENV['DB_PORT'];      // int(3306)
$_ENV['DB_PASSWORD'];  // string("supersecret")
$_ENV['APP_DEBUG'];    // bool(true)
$_ENV['TIMEOUT'];      // float(5.5)

Note

  • Inline comments are supported outside quotes, e.g., DB_HOST=127.0.0.1 # main database host
  • Quotes around values are stripped automatically
  • Empty strings and "null" values are converted to null

Running Automated Tests

Run all PHPUnit tests for this library:

./vendor/bin/phpunit tests

About

Lightweight PHP .env loader with type casting, quote handling, and zero dependencies

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages