Skip to content

Repository files navigation

xdg/environment

codecov

An abstraction layer over environment variables.

Installation

composer require xdg/environment

Usage

The library consists of several classes implementing the Xdg\Environment\EnvironmentProviderInterface:

useXdg\Environment\XdgEnvironment;
useXdg\Environment\Provider\ArrayProvider;
useXdg\Environment\Provider\ChainProvider;
useXdg\Environment\Provider\EnvSuperGlobalProvider;
useXdg\Environment\Provider\GetenvProvider;
useXdg\Environment\Provider\ServerSuperGlobalProvider;
// fetches values from the $_ENV super-global$env = newEnvSuperGlobalProvider();
$value = $env->set('FOO', 'bar');
assert($env->get('FOO') === $value);
assert($_ENV['FOO'] === $value);
$env->unset('FOO');
assert($env->get('FOO') === null);
assert(!isset($_ENV['FOO']));
// fetches values from the $_SERVER super-global$env = newServerSuperGlobalProvider();
// fetches values using the getenv() function$env = newGetenvProvider();
// fetches values using the provided array as a backing store (useful for testing)$env = newArrayProvider(['FOO' => 'bar']);
// fetches values from a chain of providers, returning the first non-null value found.$env = newChainProvider(
newServerSuperGlobalProvider(),
newEnvSuperGlobalProvider(),
newGetenvProvider(),
);
// as a shortcut for the former, you can use:$env = XdgEnvironment::default();
// when updating a value, all providers in the chain are updated:$env->set('FOO', 'bar');
assert($_SERVER['FOO'] === 'bar')
assert($_ENV['FOO'] === 'bar')
assert(getenv('FOO') === 'bar')

About

An abstraction layer over environment variables

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages