oscarotero / env
Simple library to consume environment variables
Installs: 8 968 282
Dependents: 160
Suggesters: 2
Security: 0
Stars: 82
Watchers: 4
Forks: 7
Open Issues: 1
Requires
- php: >=7.1
- ext-ctype: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: >=7.0
README
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 booleanfalse
"true"
is converted to booleantrue
"null"
is converted tonull
- 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 valuesEnv::CONVERT_NULL
To convert null valuesEnv::CONVERT_INT
To convert integer valuesEnv::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
, insteadgetenv()
.Env::USE_SERVER_ARRAY
To get the values from$_SERVER
, insteadgetenv()
.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.