jasny / application-env
Logic around the APPLICATION_ENV environment variable
Requires
- php: >=8.1.0
Requires (Dev)
- phpstan/phpstan: ^1.12
- phpunit/phpunit: >= 10.5, < 12
- squizlabs/php_codesniffer: ^3.10
This package is auto-updated.
Last update: 2024-12-03 22:30:14 UTC
README
ApplicationEnv
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( from: 0, callback: fn(string $env) => $env === '' ? "settings.{$env}.yml" : "settings.yml" );