Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork2
A small and fast .env loader for PHP
License
adhocore/php-env
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
- Environment variable loader and retriever for PHP.
- Sanitization/Filters can be applied on retrieval if
filter
extension is loaded. - Using env to configure application is one of the12 postulates.
composer require adhocore/env
useAhc\Env\Loader;// Load env variables from .env file to `putenv` by default:(newLoader)->load('/project/root/.env');// Pass in boolean second param to control if the env should be reloaded:(newLoader)->load('/project/root/.env',true);// Load to $_SERVER global:(newLoader)->load('/project/root/.env',true, Loader::SERVER);// Load to $_ENV global and putenv():(newLoader)->load('/project/root/.env',true, Loader::ENV | Loader::PUTENV);// Load to all targets:(newLoader)->load('/project/root/.env',true, Loader::ALL);
Always wrap complex values within double quotes in
.env
file. Eg:APP_KEY="K&^¢*&D(?<µ}^(P\]X"
Supports#
or;
comments. Literal double quote should be escaped like""
. See more examples below:
# comment linea=1b="2"c=$3#; also comment lined="lol"# emptye=# f is `"6"`f=""6""1_2=one_two# empty tooE=""A_B=Apple Ballx=Y
Reference is possible like so:
MAIN=1REF=${MAIN}/2REF2=${REF}/3# below will not be parsed as INV is not resolvedREF3=${INV}
useAhc\Env\Retriever;// Retrieve:echo Retriever::getEnv($key);// Default value:echo Retriever::getEnv('PAYMENT_GATEWAY','stripe');// Sanitization (pass third and optionally fourth parameters):echo Retriever::getEnv('MYSQL_PORT',3306,FILTER_VALIDATE_INT);// Or you can use `env()` which is alias of `Retriever::getEnv()`:echoenv('THE_KEY');
Seefilter_var for more on sanitizing/filtering values!
If you are interestedhere is a simple benchmark.
By default this library only loads env toputenv()
.Be cautious exposing confidential credentials into$_ENV
and$_SERVER
which bug/error catchers may log.
Although this libray is already fast enough, in production you might want to boost performance a little by loading if only required:
if (!getenv('<LAST_ENV_APP_SHOULD_BE_AWARE_OF>')) {// Override false :) (newLoader)->load('/project/root/.env',false);}
For example if your app last introducedFB_APP_ID
env, but this value is not already hard set in the machine,it would be loaded via.env
file else you are already covered.
About
A small and fast .env loader for PHP
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.