jasny/application-env

Logic around the APPLICATION_ENV environment variable

v1.0.0 2018-08-09 21:37 UTC

README

Build Status Scrutinizer Code Quality Code Coverage SensioLabsInsight BCH compliance Packagist Stable Version Packagist License

Logic around the common APPLICATION_ENV environment variable.

Check and process dot-separated sub-environments like dev.testers.john.

Installation

composer require jasny/application-env

Usage

use Jasny\ApplictionEnv;

$env = new ApplicationEnv(getenv('APPLICATION_ENV') ?? 'dev');

echo "Application environment: ", (string)$env;

Check environment

The is method checks if the current application env matches the given one, or is a sub-environment of it.

if ($env->is("dev")) {
   ini_set('display_errors', true);
}

This would match dev and dev.testers.john, but not staging or prod.worker.

Get levels

array getLevels(int from = 1, ?int to = null, callable $callback = null)

The getLevels method returns an array with environment variable levels. Starting from level 1 starts with the first level, while starting from 0 will include an empty string.

The to parameter allows to limit how deep to traverse. By default the full application env is the last entry.

A callback may be specified, which is called on each level.

Example

If the APPLICATION_ENV is dev.testers.john than getLevels() would yield;

[
  'dev',
  'dev.testers',
  'dev.testers.john'
]

To create a list of configuration files to be considered, you might use

$configFiles = $env->getLevels(0, null, function(string $env) {
    return $env === '' ? "settings.{$env}.yml" : "settings.yml";
});