srdorado/php-dotenv

Loads environment variables from .env file to getenv(), $_ENV and $_SERVER

1.0.0 2023-02-12 19:49 UTC

This package is auto-updated.

Last update: 2024-12-13 00:01:49 UTC


README

By srdorado

Base code devcoder-xyz

Loads environment variables from .env file to getenv(), $_ENV and $_SERVER.

License Packagist PHP Version Support Packagist Version Packagist Downloads Composer dependencies Test workflow Codecov composer.lock

Installation

Use Composer

Composer Require

composer require srdorado/php-dotenv

Requirements

  • PHP version >= 5.4

How to use ?

APP_ENV=dev
DATABASE_DNS=mysql:host=localhost;dbname=test;
DATABASE_USER="root"
DATABASE_PASSWORD=root
MODULE_ENABLED=true
NUMBER_LITERAL=0
NULL_VALUE=null

Load the variables

<?php
use Srdorado\Env\DotEnv;

$absolutePathToEnvFile = __DIR__ . '/.env';

(new DotEnv($absolutePathToEnvFile))->load();

Use them!

/**
 * string(33) "mysql:host=localhost;dbname=test;" 
 */
var_dump(getenv('DATABASE_DNS'));

/**
 * Removes double and single quotes from the variable:
 * 
 * string(4) "root" 
 */
var_dump(getenv('DATABASE_USER'));

/**
 * Processes booleans as such:
 * 
 * bool(true) 
 */
var_dump(getenv('MODULE_ENABLED'));

/**
 * Process the numeric value:
 * 
 * int(0) 
 */
var_dump(getenv('NUMBER_LITERAL'));

/**
 * Check for literal null values:
 * 
 * NULL
 */
var_dump(getenv('NULL_VALUE'));

Ideal for small project

Simple and easy!

Processors

Also the variables are parsed according to the configuration passed as parameter to the constructor. The available processors are:

BooleanProcessor

VARIABLE=false will be processed to bool(false)

NOTE: VARIABLE="true" will be processed to string(4) "true"

QuotedProcessor

VARIABLE="anything" will be processed to string(8) "anything"

NullProcessor

VARIABLE=null will be processed to NULL

NumberProcessor

VARIABLE=0 will be processed to int(0)

VARIABLE=0.1 will be processed to float(0.1)

Base code

Due to the need to create a library to manage environment variables through a configuration file that is compatible with php versions >= 5.4, it was decided to use as a base the code published under the MIT license in: https://github.com/devcoder-xyz/php-dotenv