Simple library to consume environment variables

v2.1.0 2020-06-11 10:59 UTC

This package is auto-updated.

Last update: 2024-04-12 05:28:22 UTC


README

Software License Build Status Quality Score Total Downloads

Simple library to get environment variables converted to simple types.

Installation

This package is installable and autoloadable via Composer as oscarotero/env.

$ composer require oscarotero/env

Example

use Env\Env;

// Using getenv function:
var_dump(getenv('FOO')); //string(5) "false"

// Using Env:
var_dump(Env::get('FOO')); //bool(false)

Available conversions

  • "false" is converted to boolean false
  • "true" is converted to boolean true
  • "null" is converted to null
  • If the string contains only numbers is converted to an integer
  • If the string has quotes, remove them

Options

To configure the conversion, you can use the following constants (all enabled by default):

  • Env::CONVERT_BOOL To convert boolean values
  • Env::CONVERT_NULL To convert null values
  • Env::CONVERT_INT To convert integer values
  • Env::STRIP_QUOTES To remove the quotes of the strings

There's also additional settings that you can enable (they're disabled by default)

  • Env::USE_ENV_ARRAY To get the values from $_ENV, instead getenv().
  • Env::USE_SERVER_ARRAY To get the values from $_SERVER, instead getenv().
  • Env::LOCAL_FIRST To get first the values of locally-set environment variables.
use Env\Env;

//Convert booleans and null, but not integers or strip quotes
Env::$options = Env::CONVERT_BOOL | Env::CONVERT_NULL;

//Add one more option
Env::$options |= Env::USE_ENV_ARRAY;

//Remove one option
Env::$options ^= Env::CONVERT_NULL;

Default value

By default, if the value does not exist, returns null, but you can change for any other value:

use Env\Env;

Env::$default = false;

The env() function

You can use the env() function, like in Laravel or other frameworks:

use function Env\env;

var_dump(env('FOO'));

Please see CHANGELOG for more information about recent changes.

The MIT License (MIT). Please see LICENSE for more information.