ENVIRONMENTAL VARIABLES
WHAT?
➤ Not tied to a language
➤ Not tied to an application
➤ Set in on the server
ENVIRONMENTS
➤ Local
➤ Dev
➤ QA
➤ Production
WHY?
➤ Different Credentials
➤ Security
HOW?
➤ Apache/Nginx
➤ system wide
➤ virtual hosts
➤ hosting company dashboard
➤ htaccess
➤ packages
<?php
require __DIR__ . '/../vendor/autoload.php';
$dotenv = new DotenvDotenv('../');
$dotenv->overload();
$dotenv->required(['DB_DNS', 'DB_NAME', 'DB_USER', 'DB_PASS']);/**/
phpinfo();
/*$_ENV['DB_NAME'] = 'env';
$_ENV['DB_USER'] = 'env';
$_ENV['DB_PASS'] = '12345EnvP@ss';
$dsn = "mysql:dbname=" . $_ENV['DB_NAME'];/**/
try {
$db = new PDO($_ENV['DB_DNS'], getenv('DB_USER'),
getenv('DB_PASS'));
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
} catch (Exception $e) {
echo $e->getMessage();
exit;
}
var_dump($db->query("SELECT * FROM custom_vars")->fetchAll());
.ENV FILE
DB_NAME="env"
DB_USER="env"
DB_PASS=“12345EnvP@ss"
#Nesting Variables
DB_DNS=“mysql:dbname=${DB_NAME}"
COMMAND LINE
source .env && mysqldump -
u$MYSQL_USER -p$MYSQL_PASSWORD -
h$MYSQL_HOST $MYSQL_DATABASE >
$DUMP_FILE

Environmental Variables